admin 管理员组

文章数量: 1086061

3D动作手游的辅助瞄准算法(三)

书接上回,现在我们得到了一个基本正确的锁定优先级算法:

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;

下期贴上完整代码

本文标签: 3D动作手游的辅助瞄准算法(三)