Unity多人立方体自动移动?

时间:2018-05-03 18:28:31

标签: c# unity3d game-physics unityscript

我已经按照下面的Unity官方多人游戏指南进行操作,除了我在同一台计算机上运行两个实例(在构建运行中运行1个而在播放模式下运行另一个实例)时,由于某种原因自动移动在一个圆圈。

我不知道为什么这是因为我完全按照教程,除非我错过了一些东西:P我目前在第9步(识别本地玩家)并且我停在那里因为我的玩家继续在圈子里移动。

要澄清,他们没有旋转到位,他们走了一圈。想象一个人在地板上跟着一个虚线圆圈,同样的想法。

此问题仅在我运行两个实例(构建运行模式和统一播放模式)时发生。如果我只统一玩游戏模式,一切正常。

以前有没有人经历过这个?

Unity多人游戏教程 https://unity3d.com/learn/tutorials/topics/multiplayer-networking/network-manager?playlist=29690

我的版本是2017.2.0f3< - 也许这就是为什么?我应该更新到另一个补丁吗?

提前谢谢

我在哪里产生角色 Where I spawn the characters

构建并运行,玩家只需自动移动圈子 build and run, player just spins in circles automatically

无论是构建运行和播放模式,它们都会自动进入圈子 both build run and play mode, they both again spin in circles automatically

2 个答案:

答案 0 :(得分:1)

我在您的代码中看到第一个问题:

PlayerController.cs第36行,你写了

   var bullet = (GameObject)Instantiate(BulletPrefab, BulletSpawn.transform.position, BulletSpawn.transform.rotation);

应该是

   var bullet = (GameObject)Instantiate(BulletPrefab, BulletSpawn.position, BulletSpawn.rotation);

由于BulletSpawn已经是一个变换。否则子弹可能不会朝枪方向射击。

如果我没有按下键盘键,我就没有任何播放器移动。

这是2个构建运行良好的截图: enter image description here

我也在游戏模式中试过Build run + Unity Editor,我没有问题。

也许问题来自你的键盘或统一的输入管理器?由于您使用的是Input.GetAxis,请检查此https://docs.unity3d.com/Manual/class-InputManager.html

答案 1 :(得分:0)

角色自动移动的问题是因为您将某些东西插入了计算机,充当控制器/操纵杆。进入控件设置,并将所有操纵杆设置为最后一个操纵杆#。确保为所有垂直和水平移动设置此设置。那应该可以解决问题。

例如,如果您使用像3D connexion这样的3D鼠标,它可以充当操纵杆/控制器并自动移动角色。