如何解决在方形平台上走来走去 Unity2D
我正在尝试制作一个围绕平台行走的角色,如果角色到达某个角落,它会旋转并继续在平台的一侧行走,与底部相同。
这是我要达到的目标的直观表示。 Movement
具体问题是,当角色到达角落时,旋转会变得疯狂。我正在使用从角色到平台的光线投射来实现此目的,如果光线投射找不到地板,我会像这样开始旋转:
times++;
transform.rotation = Quaternion.Slerp(transform.rotation,Quaternion.AngleAxis(times*-89.9f,Vector3.forward),Time.deltaTime * RotationSpeed);
_characterGravity.SetGravityAngle(transform.localEulerAngles.z);
我正在使用characterGravity脚本,该脚本允许我更改角色的重力方向,以便在上下颠倒或侧面行走时不会掉落。但这不能正常工作。有更好的方法吗?
解决方法
假设您的2D视图在XY平面上对齐,并且Z轴对准屏幕(相机所面对的方向),我建议使用2而不是尝试线性插值之间的旋转两个值:
if (ShouldRotateAroundCorner()) {
transform.Rotate(Vector3.forward,RotationSpeed * Time.deltaTime);
}
您只需确保您的ShouldRotateAroundCorner()知道何时开始和停止90度转弯,这将需要一些额外的代码来跟踪何时处于这种状态变化。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。