Esempio n. 1
0
    // Token: 0x06003DE8 RID: 15848 RVA: 0x00137FBC File Offset: 0x001363BC
    protected internal void SerializeComponent(Component component, PhotonStream stream, PhotonMessageInfo info)
    {
        if (component == null)
        {
            return;
        }
        if (component is UnityEngine.MonoBehaviour)
        {
            this.ExecuteComponentOnSerialize(component, stream, info);
        }
        else if (component is Transform)
        {
            Transform transform = (Transform)component;
            switch (this.onSerializeTransformOption)
            {
            case OnSerializeTransform.OnlyPosition:
                stream.SendNext(transform.localPosition);
                break;

            case OnSerializeTransform.OnlyRotation:
                stream.SendNext(transform.localRotation);
                break;

            case OnSerializeTransform.OnlyScale:
                stream.SendNext(transform.localScale);
                break;

            case OnSerializeTransform.PositionAndRotation:
                stream.SendNext(transform.localPosition);
                stream.SendNext(transform.localRotation);
                break;

            case OnSerializeTransform.All:
                stream.SendNext(transform.localPosition);
                stream.SendNext(transform.localRotation);
                stream.SendNext(transform.localScale);
                break;
            }
        }
        else if (component is Rigidbody)
        {
            Rigidbody            rigidbody            = (Rigidbody)component;
            OnSerializeRigidBody onSerializeRigidBody = this.onSerializeRigidBodyOption;
            if (onSerializeRigidBody != OnSerializeRigidBody.All)
            {
                if (onSerializeRigidBody != OnSerializeRigidBody.OnlyAngularVelocity)
                {
                    if (onSerializeRigidBody == OnSerializeRigidBody.OnlyVelocity)
                    {
                        stream.SendNext(rigidbody.velocity);
                    }
                }
                else
                {
                    stream.SendNext(rigidbody.angularVelocity);
                }
            }
            else
            {
                stream.SendNext(rigidbody.velocity);
                stream.SendNext(rigidbody.angularVelocity);
            }
        }
        else if (component is Rigidbody2D)
        {
            Rigidbody2D          rigidbody2D           = (Rigidbody2D)component;
            OnSerializeRigidBody onSerializeRigidBody2 = this.onSerializeRigidBodyOption;
            if (onSerializeRigidBody2 != OnSerializeRigidBody.All)
            {
                if (onSerializeRigidBody2 != OnSerializeRigidBody.OnlyAngularVelocity)
                {
                    if (onSerializeRigidBody2 == OnSerializeRigidBody.OnlyVelocity)
                    {
                        stream.SendNext(rigidbody2D.velocity);
                    }
                }
                else
                {
                    stream.SendNext(rigidbody2D.angularVelocity);
                }
            }
            else
            {
                stream.SendNext(rigidbody2D.velocity);
                stream.SendNext(rigidbody2D.angularVelocity);
            }
        }
        else
        {
            Debug.LogError("Observed type is not serializable: " + component.GetType());
        }
    }
Esempio n. 2
0
    // Token: 0x06003DE7 RID: 15847 RVA: 0x00137D84 File Offset: 0x00136184
    protected internal void DeserializeComponent(Component component, PhotonStream stream, PhotonMessageInfo info)
    {
        if (component == null)
        {
            return;
        }
        if (component is UnityEngine.MonoBehaviour)
        {
            this.ExecuteComponentOnSerialize(component, stream, info);
        }
        else if (component is Transform)
        {
            Transform transform = (Transform)component;
            switch (this.onSerializeTransformOption)
            {
            case OnSerializeTransform.OnlyPosition:
                transform.localPosition = (Vector3)stream.ReceiveNext();
                break;

            case OnSerializeTransform.OnlyRotation:
                transform.localRotation = (Quaternion)stream.ReceiveNext();
                break;

            case OnSerializeTransform.OnlyScale:
                transform.localScale = (Vector3)stream.ReceiveNext();
                break;

            case OnSerializeTransform.PositionAndRotation:
                transform.localPosition = (Vector3)stream.ReceiveNext();
                transform.localRotation = (Quaternion)stream.ReceiveNext();
                break;

            case OnSerializeTransform.All:
                transform.localPosition = (Vector3)stream.ReceiveNext();
                transform.localRotation = (Quaternion)stream.ReceiveNext();
                transform.localScale    = (Vector3)stream.ReceiveNext();
                break;
            }
        }
        else if (component is Rigidbody)
        {
            Rigidbody            rigidbody            = (Rigidbody)component;
            OnSerializeRigidBody onSerializeRigidBody = this.onSerializeRigidBodyOption;
            if (onSerializeRigidBody != OnSerializeRigidBody.All)
            {
                if (onSerializeRigidBody != OnSerializeRigidBody.OnlyAngularVelocity)
                {
                    if (onSerializeRigidBody == OnSerializeRigidBody.OnlyVelocity)
                    {
                        rigidbody.velocity = (Vector3)stream.ReceiveNext();
                    }
                }
                else
                {
                    rigidbody.angularVelocity = (Vector3)stream.ReceiveNext();
                }
            }
            else
            {
                rigidbody.velocity        = (Vector3)stream.ReceiveNext();
                rigidbody.angularVelocity = (Vector3)stream.ReceiveNext();
            }
        }
        else if (component is Rigidbody2D)
        {
            Rigidbody2D          rigidbody2D           = (Rigidbody2D)component;
            OnSerializeRigidBody onSerializeRigidBody2 = this.onSerializeRigidBodyOption;
            if (onSerializeRigidBody2 != OnSerializeRigidBody.All)
            {
                if (onSerializeRigidBody2 != OnSerializeRigidBody.OnlyAngularVelocity)
                {
                    if (onSerializeRigidBody2 == OnSerializeRigidBody.OnlyVelocity)
                    {
                        rigidbody2D.velocity = (Vector2)stream.ReceiveNext();
                    }
                }
                else
                {
                    rigidbody2D.angularVelocity = (float)stream.ReceiveNext();
                }
            }
            else
            {
                rigidbody2D.velocity        = (Vector2)stream.ReceiveNext();
                rigidbody2D.angularVelocity = (float)stream.ReceiveNext();
            }
        }
        else
        {
            Debug.LogError("Type of observed is unknown when receiving.");
        }
    }