ネットワーク
ネットワークを使ったテストを作った。
1.板を置き、平行光源を置いたゲームオブジェクトをプレファブ化
2.キューブを置き「Player」とリネイムし、Player.csスクリプトとRigidbody、NetworkViewを追加
3.「Player」をプレファブ化
4.空のゲームオブジェクトを作成してModule.csスクリプトを追加
5.WebPlayerでビルドして、ブラウザで2つ開く
6.1つは「Host」、もう一つは「Connect」を選ぶ
https://dl.dropbox.com/u/67579260/Unity/Test04/WebPlayer/WebPlayer.html
Player.cs
using UnityEngine; using System.Collections; public class Player : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { if(networkView.isMine) { if(Input.GetMouseButtonDown(0)) { rigidbody.AddForce(1000.0f*Vector3.up); } } } void OnGUI() { if(networkView.isMine) { GUI.Label(new Rect(100,100,100,100), networkView.viewID.ToString()); } } }
Module.cs
using System.Collections; public class Module : MonoBehaviour { public GameObject m_Prefab = null; public string m_IP = "127.0.0.1"; public string m_Port = "4211"; public bool m_Connected = false; /* プレイヤー. */ void CreatePlayer() { m_Connected = true; int posNo = Random.Range(0, transform.childCount); Transform childTransform = transform; GameObject obj = Network.Instantiate(m_Prefab, new Vector3(posNo,10,0), childTransform.rotation, 1) as GameObject; Color [] s_Color = { Color.red, Color.blue, Color.green, Color.magenta, }; obj.renderer.material.color = s_Color[posNo%4]; } public void OnDisconnectedFromServer() { m_Connected = false; } public void OnPlayerDisconnected(NetworkPlayer player) { Network.DestroyPlayerObjects(player); } public void OnConnectedToServer() { Network.sendRate = 60.0f; CreatePlayer(); } public void OnServerInitialized() { Network.sendRate = 60.0f; CreatePlayer(); } void OnGUI() { if(!m_Connected) { m_IP = GUI.TextField(new Rect(30,10,90,20), m_IP); m_Port = GUI.TextField(new Rect(30,40,90,20), m_Port); if(GUI.Button(new Rect(30,70,90,20), "Connect")) { Network.Connect(m_IP, int.Parse(m_Port)); } if(GUI.Button(new Rect(30,100,90,20), "Host")) { Network.InitializeServer(10, int.Parse(m_Port), false); } } } }