unity3d network教程我给大家介绍一个OnNetworkInstantiate函数,当一个物体使用Network.Instantiate已经网络实例化,在该物体上调用这个函数。这个对于禁用或启用一个已经实例化的物体组件来说是非常有用的,它们的行为取决与它们是在本地还是在远端。注意:在NetworkMessageInfo里的networkView属性不能在OnNetworkInstantiate里使用。只有OnNetworkInstantiate是不够的,应该还要一个是不是本地的判断即NetworkView.isMine是boolean类型的。Unity3D教程手册。下面看看代码你就明白了:
注:1.假如我们的移动脚本是move.js.
2.该脚本一定要绑定在要Network.Instantiate的对象上,我们这是预制的cube。
01
<span style=“color:#352f28;”></span><pre name=“code” class=“java”>var thisName:String=“playername”;
02
03
function OnNetworkInstantiate(msg:NetworkMessageInfo){
04
05
if(networkView.isMine){ //如果是本地,即改客户端的游戏对象
06
07
name=“player”;
08
09
}
10
11
else{ //如果是其他客户端的游戏对象
12
13
thisName=“Remote”+Random.Range(1,10);
14
15
name += thisName;
16
17
GetComponent(move).enabled = false;
18
19
}
20
21
}</pre><br>
22
23
<br>
24
25
<pre></pre>
26
27
<br>
28
29
<p></p>
30
31
<span style=“font-family:Verdana,Geneva,sans-serif,宋体; line-height:20px”></span>
注:1.假如我们的移动脚本是move.js.
2.该脚本一定要绑定在要Network.Instantiate的对象上,我们这是预制的cube。
01
<span style=“color:#352f28;”></span><pre name=“code” class=“java”>var thisName:String=“playername”;
02
03
function OnNetworkInstantiate(msg:NetworkMessageInfo){
04
05
if(networkView.isMine){ //如果是本地,即改客户端的游戏对象
06
07
name=“player”;
08
09
}
10
11
else{ //如果是其他客户端的游戏对象
12
13
thisName=“Remote”+Random.Range(1,10);
14
15
name += thisName;
16
17
GetComponent(move).enabled = false;
18
19
}
20
21
}</pre><br>
22
23
<br>
24
25
<pre></pre>
26
27
<br>
28
29
<p></p>
30
31
<span style=“font-family:Verdana,Geneva,sans-serif,宋体; line-height:20px”></span>