开发者社区> 问答> 正文

Unity中的AI脚本。阻止代码中的Y旋转

我正在创建一个游戏,其中世界是3D而角色是2D。这意味着我的Y旋转不得更改,否则2D精灵将旋转。我编写了AI脚本,而敌人确实吸引了我的玩家,但他也旋转了90度。如何修改代码以使其精灵在X和Z轴上跟随我的播放器,但Y轴旋转保持零。

展开
收起
游客ufivfoddcd53c 2020-01-04 14:54:51 2120 0
2 条回答
写回答
取消 提交回答
  • 如果你固定了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轴置为原始数值。

    2020-02-11 11:20:01
    赞同 展开评论 打赏
  • 设置之前尝试修改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);
        }
    
    2020-01-04 14:57:28
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Lindorm AI 能力介绍 立即下载
2023云栖大会:PolarDB for AI 立即下载
2023云栖大会:Lindorm一站式AI数据平台实战 立即下载