Unity5之Network基础用法之人物跑动同步

接下来写unity之Network系列文章。本文从最基本的讲起。依然用案例操作的方式来讲解。


案例目标:使用Network功能实现两个客户端中的两个人物在同一个场景走动可以互相看到。

步骤1:

新建一个场景,场景中包括相机(命名为KKCAM)、一个plane、3个cube(命名为enviorment)、一个空物体(命名为Network)、一个第一人称角色控制器(命名为PLAYER)。
如下图:
 


步骤2:

给PLAYER添加Network Identity组件和Network Transform组件。
Network Identity组件用来给该物体添加ID,Network Transform组件是为了我们人物的移动而添加的。所以在Transform SyncMode的选项下修改成“Sync Transform”。
如下图:
 



步骤3:

给Network上添加组件Network Manager和Network Manager HUD组件。

Network Manager负责管理Network的 通讯,Network Manager HUD组件用来显示运行时的关于Network的UI。
将PLAYER作出一个预制物体,然后放到Spawn info下的playerprefab内。如下图:

 


步骤4:

给PLAYER添加脚本playernetwork。
该脚本的作用就是客户端只可以控制自己客户端的角色。
注意:PLAYER上的CharacterController,FirstPersonController组件以及其子物体FirstPersonCharacter上的相机组件都是默认为关闭。
如图:
 

代码;
[C#]  纯文本查看  复制代码
?
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
 
 
public class playernetwork : NetworkBehaviour
{
 
     [SerializeField]
     Camera fpscamera;
     [SerializeField]
     AudioListener audioplayer;
 
     // Use this for initialization
     void Start()
     {
         if (isLocalPlayer) //只有本客户端的角色才会执行
 
         {
             GameObject.Find( "KKCAM" ).SetActive( false ); //关闭掉场景中的相机使用角色控制器中的自己带的相ua
             GetComponent<CharacterController>().enabled = true ;
             GetComponent<UnityStandardAssets.Characters.FirstPerson.FirstPersonController>().enabled = true ;
 
             fpscamera.enabled = true ;
             audioplayer.enabled = true ;
 
         }
     }
 
     // Update is called once per frame
     void Update()
     {
 
     }
}



注意:PLAYER作为预制物体要点Apply


步骤5: 然后打包运行,需要启动两个exe,第一个启动后选择LAN host选项做为服务器选项,第二个启动后点击LAN Client选项作为客户端。如下图:

 



运行效果:动态图
 

猜你喜欢

转载自blog.csdn.net/alayeshi/article/details/78517525
今日推荐