/// <summary> /// Get Down Start Sync Button /// </summary> public void OnSyncStartButtonDown() { var ca = "wss://" + _serverAddress + ":" + _port.ToString(); Debug.Log("Connect to " + ca); ws = new WebSocket(ca); //Add Events //On catch message event ws.OnMessage += (object sender, MessageEventArgs e) => { print(e.Data); }; //On error event ws.OnError += (sender, e) => { Debug.Log("WebSocket Error Message: " + e.Message); _nowPhase = SyncPhase.Idling; }; //On WebSocket close event ws.OnClose += (sender, e) => { Debug.Log("server error:" + e); Debug.Log("Disconnected Server"); }; ws.Connect(); _nowPhase = SyncPhase.Syncing; }
private void Awake() { //_nowPhase = SyncPhase.Idling; var ca = "ws://" + _serverAddress + ":" + _port.ToString() + "/"; Debug.Log("Connect to " + ca); ws = new WebSocket(ca); //Add Events //On catch message event ws.OnMessage += (object sender, MessageEventArgs e) => { //print(e.Data); ReceiveBuffer.strBuffer = (e.Data); }; //On error event ws.OnError += (sender, e) => { Debug.Log("WebSocket Error Message: " + e.Message); _nowPhase = SyncPhase.Idling; }; //On WebSocket close event ws.OnClose += (sender, e) => { Debug.Log("Disconnected Server"); }; ws.Connect(); ws.Send("Hello"); }
private void Awake() { _nowPhase = SyncPhase.Idling; //var cTransformValue = gameObject.ObserveEveryValueChanged(_ => _syncObjTransform.position); //cTransformValue.Subscribe(x => OnChangedTargetTransformValue(x)); }
private void Awake() { _nowPhase = SyncPhase.Idling; //var cTransformValue = gameObject.ObserveEveryValueChanged(_ => _syncObjTransform.position); //cTransformValue.Subscribe(x => OnChangedTargetTransformValue(x)); //intervalの監視 var intervalValue = gameObject.ObserveEveryValueChanged(_ => interval_inputField.text); intervalValue.Subscribe(x => OnChangedTargetIntervalValue(x)); }
private void Awake() { cube = GameObject.Find("Cube"); pos2 = new Vector3(-9.0f, 0.4737244f, 0.0f); var ca = "ws://" + _serverAddress + ":" + _port.ToString(); Debug.Log("Connect to " + ca); ws = new WebSocket(ca); //Add Events //On catch message event ws.OnMessage += (object sender, MessageEventArgs e) => { print(e.Data); var sVector = e.Data; sVector = sVector.Substring(1, sVector.Length - 2); // split the items sArray = sVector.Split(','); // store as a Vector3 try { pos2 = new Vector3( Convert.ToSingle(sArray[0]), Convert.ToSingle(sArray[1]), Convert.ToSingle(sArray[2]) ); } catch (Exception ex) { Debug.Log(ex); } }; //On error event ws.OnError += (sender, e) => { Debug.Log("WebSocket Error Message: " + e.Message); _nowPhase = SyncPhase.Idling; }; //On WebSocket close event ws.OnClose += (sender, e) => { Debug.Log("Disconnected Server"); }; ws.Connect(); _nowPhase = SyncPhase.Syncing; }
/// <summary> /// Get Down Stop Sync Button /// </summary> public void OnSyncStopButtonDown() { ws.Close(); //Disconnect ws = null; _nowPhase = SyncPhase.Idling; }
/// <summary> /// Get Down Start Sync Button /// </summary> public void OnSyncStartButtonDown() { var ca = "ws://" + IP_inputField.text + ":" + _WSPort.ToString(); Debug.Log("Connect to " + ca); ws = null; ws = new WebSocket(ca); var context = System.Threading.SynchronizationContext.Current; //Add Events //On catch message event ws.OnMessage += (object sender, MessageEventArgs e) => { Debug.Log("Recieved :" + e.Data); JsonData item = JsonUtility.FromJson <JsonData>(e.Data); Vector3 pos = new Vector3(item.posX, item.posY, item.posZ); Vector3 eulerAngles = new Vector3(item.eulerAngleX, item.eulerAngleY, item.eulerAngleZ); //wsが追加されたときに一度呼ばれる if (item.type == "connection") { _MyId = item.id; Debug.LogWarning("MyId is set" + _MyId); context.Post(state => { _myIdWindow.text = _MyId.ToString(); }, null); Debug.Log("new connection id : " + _MyId); } //otherPlayerのpositionを更新 else if (item.type == "player") { //OtherPlayersDicにaddされていないplayerがいたら追加 if (!OherPlayers.ContainsKey(item.id) & item.id != 0 & item.id != _MyId) { context.Post(state => { GameObject otherPlayer = Instantiate(otherPlayerPrefab) as GameObject; OherPlayers.Add(item.id, otherPlayer); foreach (var otherplayer in OherPlayers) { Debug.LogWarning("new OtherPlayer comming"); Debug.LogWarning(otherplayer.Key); Debug.LogWarning(otherplayer.Value); } }, null); } if (item.id != _MyId) { // Main Threadでposition更新を実行する. context.Post(state => { //Debug.Log("player id : " + item.id + " moving"); if (item.id != 0) { OherPlayers[item.id].transform.position = pos; OherPlayers[item.id].transform.eulerAngles = eulerAngles; } }, null); } } else if (item.type == "skill") { // Main Threadでposition更新を実行する. context.Post(state => { GameObject bullets = Instantiate(bulletPrefab) as GameObject; bullets.transform.position = pos; bullets.transform.eulerAngles = eulerAngles; Vector3 force; force = bullets.transform.forward * speed; bullets.GetComponent <Rigidbody>().AddForce(force); }, null); } //else if (item.type == "anotherconnection") //{ // Debug.Log("anotherconnection"); // context.Post(state => // { // GameObject otherPlayer = Instantiate(otherPlayerPrefab) as GameObject; // Debug.Log("instantiate otherplayer"); // OherPlayers.Add(item.id,otherPlayer); // Debug.Log("OherPlayers.Count :" + OherPlayers.Count); // }, null); // Debug.Log("Another Player comming id : " + item.id); //} }; //On error event ws.OnError += (sender, e) => { Debug.Log("WebSocket Error Message: " + e.Message); _nowPhase = SyncPhase.Idling; }; //On WebSocket close event ws.OnClose += (sender, e) => { Debug.Log("Disconnected Server"); _nowPhase = SyncPhase.Idling; }; ws.Connect(); _nowPhase = SyncPhase.Syncing; }
//private void Update() // { // tmpTime += Time.deltaTime; // if( tmpTime > _interval) // { // OnChangedTargetTransformValue(_syncObjTransform.position,_syncObjTransform.eulerAngles); // tmpTime = 0; // } // } /// <summary> /// Get Down Start Sync Button /// </summary> public void OnSyncStartButtonDown() { var ca = "ws://" + IP_inputField.text + ":" + _WSPort.ToString(); Debug.Log("Connect to " + ca); ws = new WebSocket(ca); var context = System.Threading.SynchronizationContext.Current; //Add Events //On catch message event ws.OnMessage += (object sender, MessageEventArgs e) => { Debug.Log("Recieved :" + e.Data); JsonData item = JsonUtility.FromJson <JsonData>(e.Data); Debug.Log("Recieved1 :" + item.type); //Vector3 pos = new Vector3(item.posX, item.posY, item.posZ); //Vector3 eulerAngles = new Vector3(item.eulerAngleX, item.eulerAngleY, item.eulerAngleZ); //otherPlayerのpositionを更新 //if (item.type == "player") //{ // // Main Threadでposition更新を実行する. // context.Post(state => // { // //OtherCube.transform.position = pos; // //OtherCube.transform.eulerAngles = eulerAngles; // }, e.Data); //} //else if(item.type == "skill") //{ // // Main Threadでposition更新を実行する. // context.Post(state => // { // //GameObject bullets = Instantiate(bullet) as GameObject; // //bullets.transform.position = pos; // //bullets.transform.eulerAngles = eulerAngles; // //Vector3 force; // //force = bullets.transform.forward * speed; // //bullets.GetComponent<Rigidbody>().AddForce(force); // }, e.Data); //} //else if(item.type == "connection") //{ // Debug.Log("new connection id : " + item.id); //} }; //On error event ws.OnError += (sender, e) => { Debug.Log("WebSocket Error Message: " + e.Message); _nowPhase = SyncPhase.Idling; }; //On WebSocket close event ws.OnClose += (sender, e) => { Debug.Log("Disconnected Server"); _nowPhase = SyncPhase.Idling; }; ws.Connect(); _nowPhase = SyncPhase.Syncing; }