我遇到了一个问题.
我现在的基本设置,两个对象:我的相机和我的播放器对象.
玩家通过WASD上的Transform移动,并且应该在鼠标上旋转
运动.
自上而下(以轻微的“3ps”风格角度,使玩家对象居中于摄像机的视角,并根据玩家的旋转进行旋转.
这是球员运动脚本:
http://pastebin.com/SvN8FuWs
这是玩家轮换脚本:http://pastebin.com/uzZ7SKFL
我所展示的所有内容的结果都是旋转,但它不会旋转到鼠标物理位置.
当我用鼠标绘制圆圈时,它会完全旋转,但不能始终指向鼠标所在的位置.我不确定为什么.
期望的结果是相机(玩家对象的孩子)跟随玩家的移动和旋转,同时玩家用其移动脚本移动,并旋转以指向鼠标所在的位置.
有人有任何想法吗?提前致谢.
编辑:如果有帮助,当前轮换就像这样.
用鼠标围绕播放器绘制大圆圈会比播放器周围非常紧密的圆圈产生更慢的旋转.
最佳答案 我不确定如果我明白你想要做什么.如果你想尝试类似游戏“死亡之国”,那么我会建议这样的事情:
MouseLook.cs
void Update()
{
Vector3 mouse = Input.mousePosition;
Vector3 mouseWorld = Camera.main.ScreenToWorldPoint(mouse.x,
mouse.y,
player.transform.y);
Vector3 forward = mouseWorld - player.transform.position;
player.transform.rotation = Quaternion.LookRotation(forward, Vector3.up);
}
如果您希望相机随播放器一起移动和旋转,则只需将相机作为播放器对象的子项.
编辑:我有一些错误,我的坏,这是正确的代码.
void Update()
{
Vector3 mouse = Input.mousePosition;
Vector3 mouseWorld = Camera.main.ScreenToWorldPoint(new Vector3(
mouse.x,
mouse.y,
player.transform.position.y));
Vector3 forward = mouseWorld - player.transform.position;
player.transform.rotation = Quaternion.LookRotation(forward, Vector3.up);
}