프로그래밍 정리/Unity

[Unity - 유니티] 입사각의 반대각을 통한 이펙트 효과(ex: 총알이 벽에 맞았을 때)

주누다 2014. 6. 3. 22:43
반응형

입사각 - 들어오는 빛이랑 법선(거울면에 수직인선)이랑 이루는 각


입사각

=> (충돌 지점 벡터 - 발사 원점 벡터)

Vector3 Pos = crashVector.position - fireVector.position;


반대각

=> (발사 원점 벡터 - 충돌 지점 벡터)

Vector3 Pos = fireVector.position - crashVector.position;


예를 들어 총알이 벽에 부딪혀 이펙트 효과를 보여줄 때

총알이 나간 부분에서 반대로 이펙트를 보여주어야 하기 때문에

반사각을 구해서 이펙트를 생성.

ex)

// 반대각

Vector3 Pos = fireVector.position - crashVector.position;


// 입사각의 반대인 반대각으로 이펙트 생성

Object obj = Instantiate(paricleEffect, coll.transform.position, Quaternion.LookRotation(Pos));

// 1초 후에 스파크 파티클 삭제

Destroy(obj, 1.0f);


※ Quaternino.LookRotation => upwards을 따르는 head upwards에 앞을 따라 보는 회전을 생성.




반응형