2016-12-13 43 views
1

유니티의 문서를 포함하여 어디에서나 보았지만 유니티의 Vector2.Reflect() 함수를 사용하는 좋은 예는 찾을 수 없습니다. 나는 벽에 부딪 힐 때 (2D 브레이크 아웃 게임에서) 공의 방향을 제어하기 위해 이것을 사용하려고합니다. 그것은 2 개의 인자 (inDirection, inNormal)를 취하지 만 이것을 어떻게 사용하는지 알 수는 없습니다. 어떤 도움을 주시면 감사하겠습니다.유니티 - Vector2.Reflect() 사용법

+0

, 하나는 공의 방향 다른 하나는 벽의 법선입니다. –

+0

2D 질문에서 [tag : unity3d]에 태그를 지정하는 이유는 무엇입니까? – devRicher

+1

Unity3D는 2D 게임을 만들 때 사용하는 응용 프로그램의 이름입니다. – Kaz

답변

3

inDirection은 공의 속도가되어야하고 inNormal은 벽에 수직 인 단위 벡터 여야합니다. 나는 현재 그 코드를 테스트 할 수 없습니다, 그래서 그것은 사물의 이름의 관점에서 조정해야 할 수 있습니다

void OnCollisionEnter(Collision collision) 
{ 
    Vector2D inDirection = GetComponent<RigidBody2D>().velocity; 
    Vector2D inNormal = collision.contacts[0].normal; 
    Vector2D newVelocity = Vector2D.Reflect(inDirection, inNormal); 
} 

참고 :

은 볼 오브젝트이를 넣어보십시오.

5

enter image description here

Vector2 Reflect(Vector2 inDirection, Vector2 inNormal) :

inDirection :

inNormal 검은 색 화살표

: 빨간색 화살표

return output : 매개 변수가 말하는 것처럼 녹색 화살표