Unity中的一些算法

1,三维空间中角色朝向鼠标位置
public void Turn()
{
    Ray ray=Camera.main.ScreenPointToRay(Input.MousePosition);
    Vector3 vector=player.transform.position-Camera.main.transform.position;
    Vector3 direction=(vector.y/ray.direction.y)*ray.direction-vector;
    player.transform.LookAt(player.transform.position+direction);
}
2,将某个向量映射到另一个三维空间(transform,right为x轴,up为y轴,forward为z轴)中
public Vector3 Remap(Vector3 source)
{
    float x=Vector3.Dot(transform.right,source);
    float y=Vector3.Dot(transform.up,source);
    float z=Vector3.Dot(transform.forward,source);
    return new Vector3(x,y,z);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容