我遇到了问题。
我现在的基本设置,两个对象:我的相机和我的播放器对象。
玩家通过WASD上的Transform移动,并且应该在鼠标上旋转 运动。
相机自上而下(在轻微的#34; 3ps"样式角度,使玩家对象保持中心到相机的视角,并根据玩家的旋转旋转。
这是玩家运动脚本: http://pastebin.com/SvN8FuWs
这是玩家轮换脚本:http://pastebin.com/uzZ7SKFL
我所展示的所有内容的结果都是旋转,但它并没有旋转到鼠标物理位置。
当我用鼠标绘制圆圈时,它会完全旋转,但不能始终指向鼠标所在的位置。我不确定为什么。
所需的结果是相机(玩家对象的孩子)跟随玩家的移动和旋转,同时玩家使用其移动脚本移动,并旋转以指向鼠标所在的位置。
有人有任何想法吗?提前谢谢。
编辑:如果有帮助,当前轮换就像这样。
在播放器周围用鼠标绘制大圆圈会使旋转速度变慢,而不是玩家周围非常紧凑的圆圈。
答案 0 :(得分:2)
我不确定我是否明白你要做什么。如果你想尝试做类似游戏“死亡之国”的事情,那么我会建议这样的事情:
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);
}