Unity新手求助:使用transform.forward旋转角色时出现意外移动问题
问题解决方法
你的角色同时出现旋转和移动的情况,是因为代码中保留了直接修改位置的语句。只需移除或注释掉移动位置的那一行即可:
Vector2 inputVector = new Vector2(0,0); inputVector = inputVector.normalized; Vector3 moveDir = new Vector3(inputVector.x, 0f, inputVector.y); // 移除下面这行(或注释),你已有独立的移动机制 // transform.position += moveDir * normalSpeed * Time.deltaTime; float rotateSpeed = 10f; transform.forward = Vector3.Slerp(transform.forward, moveDir, Time.deltaTime * rotateSpeed);
原理说明
transform.position += ...这行代码直接修改角色的位置坐标,是导致移动的核心原因transform.forward = Vector3.Slerp(...)仅负责让角色朝向目标方向平滑旋转,不会触发移动行为
内容的提问来源于stack exchange,提问作者Cristoferos
相关产品推荐
相关产品推荐

