本文利用刚体实现玩家的移动,使用刚体移动可以产生与其他刚体碰撞立即停止,防止抖动。
选中咱们的角色
选择我们角色的碰撞体,然后点击 Edit Collider ,即可在场景中设置我们的碰撞体大小。
因为这里的角色移动是在平面上的,不是横版闯关的那种形式,因此需要调整刚体的属性:
在相应的文件夹中右键, Create -> C# Script
创建MovementController脚本并打开:
将我们创建的脚本挂在到角色身上,并完成赋值,即可完成角色移动:
方法/步骤1、Unity支持三种汇编语言,分别是JS、c#和Boo。创建脚本的方法主要有三种,首先启动Unity,单机菜单栏中的Assets->Create来添加脚本。
2、第二种是启动Unity后,单击Project视图中的Create按钮创建脚本,如图所示。
3、启动Unity应用程序,在Project视图中的assets文件夹内通过右击d出的列表框创建脚本,如图所示。
4、添加完脚本后就可以在Project视图中看到。
5、双击脚本文件就可以将其打开进行编辑。
首先在场景中新建一个空物体,添加组件Network Manager 和Network ManagerHUD组件
PlayerPrefab=>客户端加入时自动生成的Prefab
AutoCreatePlayer=>自动生成Prefab。
PlayerSpawnMethod=>Prefab的生成方法,两个选项。使用这个方法首先要有指定的位置。(NetworkStartPosition)
Random=>随机生成
创建角色预制体,添加组件Network Identity
.
给角色添加移动脚本PlayerController
将角色的预制体添加到NetWork Manager/Spawn Info中
构建项目并运行,打开构建的游戏,
点击左上角的LAN Host
再打开Unity,运行程序,点击LAN Client加入游戏
画面中有两个角色(重合),移动角色会发现角色在同时移动
要添加一个判断条件,判断当前角色是否为本地角色
首先,加入UnityEngine.Networking命名空间
其次,将MonoBehaviour改为NetworkBehaviour
最后添加判断条件
再次构建发布并运行,两个角色就可以分开移动了,但是还有个问题:画面不同步
在角色预制体中添加Network Transform
Network Send Rate 每秒的网络更新数
Transform Sync Mode 可以更改同步的组件类型
再次构建运行,可以看到 画面同步了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)