Ejemplo n.º 1
0
        protected virtual void SendAcceleration(Vector3 acceleration)
        {
            // send acceleration data
            AccelerationMessage msg = new AccelerationMessage();

            msg.Acceleration = acceleration;
            this.Client.Send(InputMsgType.Acceleration, msg);
        }
Ejemplo n.º 2
0
    private void Move()
    {
        //if (Input.GetKeyDown(KeyCode.Space))
        //{
        //    ShootItemMessage message = new ShootItemMessage();
        //    message.ItemPrefab = null;
        //    message.PlayerID = 0;
        //}

        // message increase decrease acceleration

        if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.S))
        {
            AccelerationMessage message = new AccelerationMessage();
            message.PlayerID     = 0; // ist das richtig?!
            message.Acceleration = m_acceleration;
            message.Speed        = m_speed;
            if (Input.GetKey(KeyCode.W))
            {
                message.PressedKey = KeyCode.W;
                //m_acceleration += 0.5f * Time.deltaTime;
            }

            if (Input.GetKey(KeyCode.S))
            {
                message.PressedKey = KeyCode.S;
                //m_acceleration -= 0.5f * Time.deltaTime;
            }

            if (IsServer)
            {
                NetworkManager.Instance.SendMessageToClients(message);
            }
            else
            {
                NetworkManager.Instance.SendMessageToServer(message);
            }
        }


        if (Input.GetKey(KeyCode.Space))
        {
            // message handbreak
            HandbreakMessage message = new HandbreakMessage();
            message.PlayerID = 0; // ist das richtig?!
            //message.Speed = m_speed;
            message.Acceleration = m_acceleration;

            if (IsServer)
            {
                NetworkManager.Instance.SendMessageToClients(message);
            }
            else
            {
                NetworkManager.Instance.SendMessageToServer(message);
            }
        }


        // no key pressed --> acceleration decreases
        else
        {
            AccelerationMessage message = new AccelerationMessage();
            message.PlayerID     = 0; // ist das richtig?!
            message.Acceleration = m_acceleration;
            message.Speed        = m_speed;
            message.PressedKey   = KeyCode.None;

            //if (m_acceleration > 0)
            //    m_acceleration -= 0.5f * Time.deltaTime;
            //else if (m_acceleration < 0)
            //    m_acceleration += 0.5f * Time.deltaTime;
            //else
            //{
            //    m_acceleration = 0.0f;
            //}

            //if (m_speed > 0)
            //{
            //    m_speed -= 0.1f * Time.deltaTime;
            //}
            //else if (m_speed < 0)
            //{
            //    m_speed += 0.1f * Time.deltaTime;
            //}


            //SetIsDirty(); ???
            if (IsServer)
            {
                NetworkManager.Instance.SendMessageToClients(message);
            }
            else
            {
                NetworkManager.Instance.SendMessageToServer(message);
            }
        }

        // noch neu ordnen!!! & sortieren / rauswerfen
        //m_acceleration = Mathf.Clamp(m_acceleration, -5.0f, 5.0f);
        //m_speed += m_acceleration;
        // m_speed = Mathf.Clamp(m_speed, -m_maxSpeed * 0.5f, m_maxSpeed);

        Vector3 direction = transform.forward;// * m_acceleration;
        //direction = direction.normalized * m_speed;

        //Quaternion _rot = transform.rotation * m_rotation.normalized;
        Quaternion _rot = transform.localRotation * m_rotation.normalized;

        //transform.position.forward * m_acceleration;

        direction            = direction.normalized * m_acceleration;
        direction.y          = m_rigidbody.velocity.y;
        m_rigidbody.velocity = direction;

        transform.position += direction;
        //transform.localRotation *= _rot;

        //direction *= Time.deltaTime * m_speed;

        //direction = transform.TransformDirection(direction);

        //m_rigidbody.MoveRotation(m_rotation);
    }
        protected virtual void OnReceiveAcceleration(NetworkMessage netMsg)
        {
            AccelerationMessage msg = netMsg.ReadMessage <AccelerationMessage> ();

            this.acceleration = msg.Acceleration;
        }