Unity 3d模型中实现射线折射

Uunity 3d模型中实现射线折射


直接代码

using UnityEngine;

public class ReflectLine : MonoBehaviour
{

void Update()
{
       Ray ray = new Ray(transform.position, transform.forward);
       RaycastHit hit;
       if (Physics.Raycast(ray.origin, ray.direction, out hit, 100))
        {
     
            Vector3 incomingVec = hit.point - transform.position;

        //hit.normal获取模型法线
        //Vector3.Reflect沿着法线反射向量
        Vector3 reflectVec = Vector3.Reflect(incomingVec, hit.normal);
        
        reflectVec.y = 0;
        Debug.DrawLine(transform.position, hit.point, Color.red);
        Debug.DrawRay(hit.point, reflectVec, Color.green);
        }
    
}

}

将他挂在任意物体,会从自身前方发射射线,碰撞到3d物体会获取法线,在得到反射向量

你可能感兴趣的:(unity)