https://blog.csdn.net/u011403161/article/details/111143602
书接上回,现在我们得到了一个基本正确的锁定优先级算法:
float T = distance * Mathf.Sin(angle * Mathf.Deg2Rad);
但是还有两个因素没有考虑:镜头视角和角色移动趋势
先说镜头
实际操作角色的时候,镜头朝向和角色朝向可能是不同的,甚至相反的
而直觉上应该优先锁定镜头中的目标,而不是角色视角中的目标
所以把玩家朝向,改成了镜头的朝向
//Vector3 f = Player.transform.forward;
Vector3 f = Camera.Main.transform.forward;
再说输入
当目标在前方,但是摇杆往左或右拉的时候,
直觉上应该在输入的方向上找新的锁定的目标,即
f = Quaternion.Euler(0,InputAngle,0) * f;
下期贴上完整代码