as above
1 Answer
1If it’s the standard Unity terrain, it’s better to create a plane with the desired decal and place it slightly in front of the point it should appear. A common case is when you shot with raycast and want to place a bullet hole where the target was hit (weapon script):
var holeDecal: GameObject;
function Update(){
if (Input.GetButtonDown("Fire1")){
var hit: RaycastHit;
if (Physics.Raycast(transform.position, transform.forward, hit)){
// calculate rotation to align decal's up direction to the surface normal:
var rot = Quaternion.FromToRotation(Vector3.up, hit.normal);
// calculate position a little ahead the hit point:
var pos = hit.point + 0.001 * hit.normal;
// create the hole decal:
Instantiate(holeDecal, pos, rot);
}
}
}