Esempio n. 1
0
    /// <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;
    }
Esempio n. 2
0
    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");
    }
Esempio n. 3
0
    private void Awake()
    {
        _nowPhase = SyncPhase.Idling;

        //var cTransformValue = gameObject.ObserveEveryValueChanged(_ => _syncObjTransform.position);
        //cTransformValue.Subscribe(x => OnChangedTargetTransformValue(x));
    }
Esempio n. 4
0
    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));
    }
Esempio n. 5
0
    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;
    }
Esempio n. 6
0
 /// <summary>
 /// Get Down Stop Sync Button
 /// </summary>
 public void OnSyncStopButtonDown()
 {
     ws.Close();         //Disconnect
     ws        = null;
     _nowPhase = SyncPhase.Idling;
 }
Esempio n. 7
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 = 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;
    }
Esempio n. 8
0
//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;
    }