자가라 노트

Unity

[Unity] 유니티 기능을 사용한 충돌반사

자가라o 2021. 8. 1. 18:22
// 공
public class ball : MonoBehaviour
{
    Vector3 MovePos; // 이동벡터
    public float _speed = 4f;
    
    void Start()
    {
        MovePos = new Vector2(1f, 1f).normalized;
    }

    void Update()
    {
        transform.position += MovePos * _speed * Time.deltaTime;
    }
}

// 벽
public class wall : MonoBehaviour
{
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag.Equals("ball"))
        {
            ball b = collision.gameObject.GetComponent<ball>();
            
            vector3 income = b.MovePos; // 입사벡터
            Vector3 normal = collision.contacts[0].normal; // 법선벡터
            b.MovePos = Vector3.Reflect(income, normal).normalized; // 반사벡터
        }
    }
}

'Unity' 카테고리의 다른 글

[Unity] 컴파일 방식 2) IL2CPP  (0) 2021.10.10
[Unity] Attribute 애트리뷰트  (0) 2021.08.13
[Unity]Rendering 렌더링  (0) 2021.06.30
[Unity][최적화] Batching, Draw Call, SetPass calls  (1) 2021.06.30