i have absolutely no idea why my decals dont get oriented correctly, remember, im a rookie coder
tried setting physics to godot same result.
heres my raycast script
extends RayCast
export(PackedScene) var impact_normal
export var force = 20.0
export var damage = 50.0
export (NodePath) var maincamera_path
onready var maincam = get_node(maincamera_path)
func firebullet():
self.force_raycast_update()
#print(maincam.name)
if self.is_colliding():
var collider = self.get_collider()
var impact = impact_normal.instance()
var n = self.get_collision_normal()
var p = self.get_collision_point()
collider.add_child(impact)
impact.global_transform.origin = p
impact.look_at_from_position(p, p - n, Vector3.UP)
impact.forward = Vector3(0.0, 0.0, 1.0)
impact.cam = maincam
if collider is RigidBody:
collider.apply_impulse( p - collider.transform.origin ,- self.global_transform.basis.z * force)
and my decal script
extends Spatial
export (AudioStreamSample) var impactsound
export(NodePath) var particles1_path
export(NodePath) var particlesStretched_path
export(NodePath) var myaudio_path
export(NodePath) var decalprojector_path
export var stretchedparticleScale : Vector2
export var decalmaxSize = 0.1
export var decalminSize = 0.05
onready var decalprojector = get_node(decalprojector_path)
onready var particles1 = get_node(particles1_path)
onready var particlesStretched = get_node(particlesStretched_path)
onready var myAudio = get_node(myaudio_path)
var cam = null
var forward: Vector3
var random = RandomNumberGenerator.new()
func _ready():
add_to_group("ignore")
random.randomize()
var randomscale = random.randf_range(decalminSize, decalmaxSize)
decalprojector.scale = Vector3(randomscale,randomscale,randomscale)
addDecal()
func addDecal():
myAudio.stream = impactsound
myAudio.pitch_scale = random.randf_range(0.9, 1.1)
if myAudio.playing == false:
myAudio.play()
particles1.set_one_shot(true)
particles1.set_emitting(true)
particlesStretched.set_one_shot(true)
particlesStretched.set_emitting(true)
func _process(_delta):
particlesStretched.process_material.set_shader_param("campos", particlesStretched.to_local(cam.global_transform.origin))
particlesStretched.process_material.set_shader_param("forward", forward)
particlesStretched.process_material.set_shader_param("decalScale", stretchedparticleScale)
func _on_VisibilityNotifier_camera_exited(_camera):
self.queue_free()
the console does print this error tho
