Ejemplo n.º 1
0
    private void OnSynchPosition(SynchedPosition position)
    {
        if (this.isLocalPlayer == false)
        {
            this.synchedPositions.Enqueue(position);
        }

        this.targetLerpTime = position.t - this.lerpDelay;
    }
Ejemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        if (this.isLocalPlayer)
        {
            Fire();
        }
        else
        {
            // Interpolate position
            while (this.synchedPositions.Count > 0 && this.synchedPositions.Peek().t <= this.targetLerpTime)
            {
                this.interpolateFromSynchedPosition = this.synchedPositions.Dequeue();
            }

            if (this.synchedPositions.Count > 0)
            {
                float t = Mathf.InverseLerp(this.interpolateFromSynchedPosition.t, this.synchedPositions.Peek().t, this.targetLerpTime);
                this.transform.position = Vector3.Lerp(this.interpolateFromSynchedPosition.position, this.synchedPositions.Peek().position, t);
                this.transform.rotation = Quaternion.Slerp(this.interpolateFromSynchedPosition.rotation, this.synchedPositions.Peek().rotation, t);
            }
            else
            {
                this.transform.position = this.interpolateFromSynchedPosition.position;
                this.transform.rotation = this.interpolateFromSynchedPosition.rotation;
            }

            this.targetLerpTime += Time.deltaTime;

            if (this.m_magic != null)
            {
                this.m_magic.transform.position = this.transform.position;
            }

            // State
            UpdateState(this.synchedState);
        }

        if (this.m_state == Player.state.pizza)
        {
            if (this.synchedHasPizza)
            {
                //Show arms and pizza
                transform.Find("wizard_arm").gameObject.SetActive(true);
                transform.Find("wizard_arm_2").gameObject.SetActive(true);
                transform.Find("pizza").gameObject.SetActive(true);
            }
            else
            {
                transform.Find("wizard_arm").gameObject.SetActive(false);
                transform.Find("wizard_arm_2").gameObject.SetActive(false);
                transform.Find("pizza").gameObject.SetActive(false);
            }
        }
    }
Ejemplo n.º 3
0
 private void CmdUpdatePosition(SynchedPosition position)
 {
     this.synchedPosition = position;
 }
Ejemplo n.º 4
0
    private void Update()
    {
        if (this.isLocalPlayer)
        {
            this.magic = TestPlayer.MagicType.None;

            if (Input.GetKey(this.rockKey))
            {
                this.magic = MagicType.Rock;
            }
            else if (Input.GetKey(this.paperKey))
            {
                this.magic = MagicType.Paper;
            }
            else if (Input.GetKey(this.scissorsKey))
            {
                this.magic = MagicType.Scissors;
            }

            CmdUpdateMagic(this.magic);
        }
        else
        {
            // Interpolate position
            while (this.synchedPositions.Count > 0 && this.synchedPositions.Peek().t <= this.targetLerpTime)
            {
                this.interpolateFromSynchedPosition = this.synchedPositions.Dequeue();
            }

            if (this.synchedPositions.Count > 0)
            {
                float t = Mathf.InverseLerp(this.interpolateFromSynchedPosition.t, this.synchedPositions.Peek().t, this.targetLerpTime);
                this.transform.position = Vector3.Lerp(this.interpolateFromSynchedPosition.position, this.synchedPositions.Peek().position, t);
            }
            else
            {
                this.transform.position = this.interpolateFromSynchedPosition.position;
            }

            this.targetLerpTime += Time.deltaTime;

            // Magic
            this.magic = this.synchedMagic;
        }

        switch (this.magic)
        {
        case MagicType.None:
            this.material.color = Color.white;
            break;

        case MagicType.Paper:
            this.material.color = this.paperColour;
            break;

        case MagicType.Rock:
            this.material.color = this.rockColour;
            break;

        case MagicType.Scissors:
            this.material.color = this.scissorsColour;
            break;
        }
    }
Ejemplo n.º 5
0
    // Update is called once per frame
    void Update()
    {
        if (this.isLocalPlayer)
        {
            Fire();
        }
        else
        {
            // Interpolate position
            while (this.synchedPositions.Count > 0 && this.synchedPositions.Peek().t <= this.targetLerpTime)
            {
                this.interpolateFromSynchedPosition = this.synchedPositions.Dequeue();
            }

            if (this.synchedPositions.Count > 0)
            {
                float t = Mathf.InverseLerp(this.interpolateFromSynchedPosition.t, this.synchedPositions.Peek().t, this.targetLerpTime);
                this.transform.position = Vector3.Lerp(this.interpolateFromSynchedPosition.position, this.synchedPositions.Peek().position, t);
                this.transform.rotation = Quaternion.Slerp(this.interpolateFromSynchedPosition.rotation, this.synchedPositions.Peek().rotation, t);
            }
            else
            {
                this.transform.position = this.interpolateFromSynchedPosition.position;
                this.transform.rotation = this.interpolateFromSynchedPosition.rotation;
            }

            this.targetLerpTime += Time.deltaTime;

            if (this.m_magic != null)
            {
                this.m_magic.transform.position = this.transform.position;
            }

            // State
            UpdateState(this.synchedState);
        }

        if (this.m_state == Player.state.pizza)
        {
            if (this.synchedHasPizza)
            {
                //Show arms and pizza
                transform.Find("wizard_arm").gameObject.SetActive(true);
                transform.Find("wizard_arm_2").gameObject.SetActive(true);
                transform.Find("pizza").gameObject.SetActive(true);
            }
            else
            {
                transform.Find("wizard_arm").gameObject.SetActive(false);
                transform.Find("wizard_arm_2").gameObject.SetActive(false);
                transform.Find("pizza").gameObject.SetActive(false);
            }
        }
    }
Ejemplo n.º 6
0
    private void OnSynchPosition(SynchedPosition position)
    {
        if (this.isLocalPlayer == false)
        {
            this.synchedPositions.Enqueue(position);
        }

        this.targetLerpTime = position.t - this.lerpDelay;
    }
Ejemplo n.º 7
0
 private void CmdUpdatePosition(SynchedPosition position)
 {
     this.synchedPosition = position;
 }
Ejemplo n.º 8
0
    private void Update()
    {
        if (this.isLocalPlayer)
        {
            this.magic = TestPlayer.MagicType.None;

            if (Input.GetKey(this.rockKey))
            {
                this.magic = MagicType.Rock;
            }
            else if (Input.GetKey(this.paperKey))
            {
                this.magic = MagicType.Paper;
            }
            else if (Input.GetKey(this.scissorsKey))
            {
                this.magic = MagicType.Scissors;
            }

            CmdUpdateMagic(this.magic);
        }
        else
        {
            // Interpolate position
            while (this.synchedPositions.Count > 0 && this.synchedPositions.Peek().t <= this.targetLerpTime)
            {
                this.interpolateFromSynchedPosition = this.synchedPositions.Dequeue();
            }

            if (this.synchedPositions.Count > 0)
            {
                float t = Mathf.InverseLerp(this.interpolateFromSynchedPosition.t, this.synchedPositions.Peek().t, this.targetLerpTime);
                this.transform.position = Vector3.Lerp(this.interpolateFromSynchedPosition.position, this.synchedPositions.Peek().position, t);
            }
            else
            {
                this.transform.position = this.interpolateFromSynchedPosition.position;
            }

            this.targetLerpTime += Time.deltaTime;

            // Magic
            this.magic = this.synchedMagic;
        }

        switch (this.magic)
        {
            case MagicType.None:
                this.material.color = Color.white;
                break;

            case MagicType.Paper:
                this.material.color = this.paperColour;
                break;

            case MagicType.Rock:
                this.material.color = this.rockColour;
                break;

            case MagicType.Scissors:
                this.material.color = this.scissorsColour;
                break;
        }
    }