쾌락없는 책임 (공부)/Unity

유니티 Vector2.Reflect로 오브젝트 반사하기 (입사각, 반사각)

허스크 2021. 7. 4. 13:54
반응형

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LightReflect : MonoBehaviour{
    
    Rigidbody2D rigid;
    Vector3 lastVelocity;

    private void Start() {
        rigid = GetComponent<Rigidbody2D>();
    }

    private void Update() {
        lastVelocity = rigid.velocity;
    }
    private void OnCollisionEnter2D(Collision2D coll) {
        var speed = lastVelocity.magnitude;
        var dir = Vector2.Reflect(lastVelocity.normalized, coll.contacts[0].normal);

        rigid.velocity = dir * Mathf.Max(speed, 0f);
    }
}
반응형