3 Pluspunkte 0 Minuspunkte

Ich erstelle bei jedem Schuss ein Planemesh, positioniere es an der Stelle der Kollission und richte es anhand der Normalen aus.

var bullet_hole = MeshInstance3D.new()
bullet_hole.mesh = PlaneMesh.new()
bullet_hole.mesh.size = Vector2(.1, .1) 
bullet_hole.material_override = StandardMaterial3D.new()
bullet_hole.material_override.albedo_color = Color(0, 0, 0) 
get_tree().root.add_child(bullet_hole)
bullet_hole.global_position = collision.position + collision.normal * 0.001
bullet_hole.global_transform = align_with_normal(bullet_hole.global_transform, collision.normal)

Wenn ich knapp an eine Ecke ziele ragt das Bullethole aber über die Kante hinaus.

Wie kann ich machen dass sich das Bullethole um die Ecken und Kanten herum faltet?

von  

1 Antwort

2 Pluspunkte 0 Minuspunkte

Dazu kannst du Decals benutzen statt einem normalen Mesh.

var decal = Decal.new()
decal.extents = Vector3(0.05,0.05,0.05) 
decal.texture_albedo = preload("res://bullethole.png")
decal.normal_fade = 0
get_tree().root.add_child(decal)
decal.global_position = collision.position + collision.normal * 0.01
decal.global_transform = align_with_normal(decal.global_transform, collision.normal)
von (884 Punkte)