我已经按照下面的Unity官方多人游戏指南进行操作,除了我在同一台计算机上运行两个实例(在构建运行中运行1个而在播放模式下运行另一个实例)时,由于某种原因自动移动在一个圆圈。
我不知道为什么这是因为我完全按照教程,除非我错过了一些东西:P我目前在第9步(识别本地玩家)并且我停在那里因为我的玩家继续在圈子里移动。
要澄清,他们没有旋转到位,他们走了一圈。想象一个人在地板上跟着一个虚线圆圈,同样的想法。
此问题仅在我运行两个实例(构建运行模式和统一播放模式)时发生。如果我只统一玩游戏模式,一切正常。
以前有没有人经历过这个?
Unity多人游戏教程 :https://unity3d.com/learn/tutorials/topics/multiplayer-networking/network-manager?playlist=29690
我的版本是2017.2.0f3< - 也许这就是为什么?我应该更新到另一个补丁吗?
提前谢谢
答案 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已经是一个变换。否则子弹可能不会朝枪方向射击。
如果我没有按下键盘键,我就没有任何播放器移动。
我也在游戏模式中试过Build run + Unity Editor,我没有问题。
也许问题来自你的键盘或统一的输入管理器?由于您使用的是Input.GetAxis
,请检查此https://docs.unity3d.com/Manual/class-InputManager.html
答案 1 :(得分:0)
角色自动移动的问题是因为您将某些东西插入了计算机,充当控制器/操纵杆。进入控件设置,并将所有操纵杆设置为最后一个操纵杆#。确保为所有垂直和水平移动设置此设置。那应该可以解决问题。
例如,如果您使用像3D connexion这样的3D鼠标,它可以充当操纵杆/控制器并自动移动角色。