我正在创建一个游戏,其中世界是3D而角色是2D。这意味着我的Y旋转不得更改,否则2D精灵将旋转。我编写了AI脚本,而敌人确实吸引了我的玩家,但他也旋转了90度。如何修改代码以使其精灵在X和Z轴上跟随我的播放器,但Y轴旋转保持零。
如果你固定了Y轴旋转,那么2D角色也将不会“面对敌人”,可以通过改变图片的“UV”翻转。这里只讨论如何固定Y轴。添加如下mono脚本,在你的角色上。
public Transform targetPoint; //目标骨骼 float z; // Use this for initialization void Start () { y = targetPoint.position.y; }
// Update is called once per frame void LateUpdate () { transform.position = new Vector3(targetPoint.position.x,y, targetPoint.position.z); }
小细节,放在lateUpdate中更新,保证你的逻辑做完后再把Y轴置为原始数值。
设置之前尝试修改y旋转
void lookAt()
{
Quaternion rotation = Quaternion.LookRotation(player.position - transform.position);
var euler = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * damping).eulerAngles;
euler.y = 0f;
transform.rotation = Quaternion.Euler(euler);
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。