unity多人联机插件_Unity官网多人联网游戏入门教程译文(Multiplayer Networking) 三...

5.玩家移动

为了实现玩家移动的功能,我们采用一个新的脚本叫做“PlayerController”。首先,这个脚本不用到联网的代码,所以只能在单机状态下运行。

1.在Player预制件上新建并添加名为“PlayerController”的脚本。

2.打开脚本编辑,替换代码。

using

UnityEngine;

​public

classPlayerController : MonoBehaviour

{

void Update()

{

var x =Input.GetAxis("Horizontal") * Time.deltaTime *

150.0f;

var z =Input.GetAxis("Vertical") * Time.deltaTime *

3.0f;

transform.Rotate(0, x, 0);

transform.Translate(0, 0, z);

}

}

系统默认Input.GetAxis("Horizontal")与Input.GetAxis("Vertical")能够让玩家使用WASD、上下左右箭头来移动物体。关于Input

Manager更多细节详见:

http://docs.unity3d.com/Manual/class-InputManager.html?_ga=1.136380656.1949003894.1429508192

3.保存脚本。

4.返回Unity,保存场景。

6.在线测试玩家移动

测试主机上玩家的移动

到目前为止,Player能够在客户端移动,但是还没有联网。测试:

1.进入运行模式。

NetworkManagerHUD的默认界面为:

a4c26d1e5885305701be709a3d33442f.png

2.点击LAN

Host按钮,使其成为Host。

NetworkManager会在场景中创建一个新的游戏物体,NetworkManagerHUD会改变,显示服务器正在工作。此时玩家端以Host的方式运行,意味着服务器与客户端在同一进程。

a4c26d1e5885305701be709a3d33442f.png

测试场景中玩家物体的移动:

3.按住WASD或者上下左右箭头移动玩家物体。

4.点击Stop按钮可以结束host。

5.退出Unity的运行模式。

测试客户端玩家的移动

测试客户端玩家移动需要游戏的两个实例同时运行,其中一个是Host。其中一个实例可以在编辑器运行,另一个可以在游戏创建的项目中运行,所以我们先要基于现有工程创建项目。

将Main场景添加到build

settings窗口。

6.保存工程。

7.选择standaloneapplication,创建单机项目并运行。

创建的单机项目运行时,勾选windowed,并选择一个相对较低的分辨率使得项目能够在编辑器旁边运行。

8.点击Host按钮,使其成为主机。

9.测试场景:按住WASD或者上下左右箭头移动玩家物体。

10.返回Unity。

11.进入Unity的运行模式。

游戏在Unity的窗口中会显示NetworkManagerHUD的界面。

12.点击Unity场景中的LANClient按钮,作为客户端来连接主机。

场景中会出现两个游戏物体,一个是主机上的本地玩家,另一个是连接上主机的客户端上的远程玩家。

测试客户端玩家游戏物体的移动:

13.按住WASD或者上下左右箭头移动玩家物体。

注意两个游戏物体都用的是同样的输入方法。

14.转换到单机版玩家。

注意主机上的玩家游戏物体位置与客户端上面的并不太。

这是因为PlayerController脚本并没有联网,两个玩家物体有着相同脚本,在每一个游戏实例中都处理相同的输入指令。主机与客户端都互相知晓对方的存在,但是玩家物体并没有与主机通信,

NetworkManager没有追踪它们的位置,所以没有被同步。

15.关闭单机版游戏。

16.返回Unity,退出运行模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值