Ejemplo n.º 1
0
 private void OnValidate()
 {
     if (m_Target != null)
     {
         Transform parent = m_Target.parent;
         if (parent == null)
         {
             if (LogFilter.logError)
             {
                 Debug.LogError("NetworkTransformChild target cannot be the root transform.");
             }
             m_Target = null;
             return;
         }
         while (parent.parent != null)
         {
             parent = parent.parent;
         }
         m_Root = parent.gameObject.GetComponent <NetworkTransform>();
         if (m_Root == null)
         {
             if (LogFilter.logError)
             {
                 Debug.LogError("NetworkTransformChild root must have NetworkTransform");
             }
             m_Target = null;
             return;
         }
     }
     m_ChildIndex = uint.MaxValue;
     NetworkTransformChild[] components = m_Root.GetComponents <NetworkTransformChild>();
     for (uint num = 0u; num < components.Length; num++)
     {
         if (components[num] == this)
         {
             m_ChildIndex = num;
             break;
         }
     }
     if (m_ChildIndex == uint.MaxValue)
     {
         if (LogFilter.logError)
         {
             Debug.LogError("NetworkTransformChild component must be a child in the same hierarchy");
         }
         m_Target = null;
     }
     if (m_SendInterval < 0f)
     {
         m_SendInterval = 0f;
     }
     if (m_SyncRotationAxis < NetworkTransform.AxisSyncMode.None || m_SyncRotationAxis > NetworkTransform.AxisSyncMode.AxisXYZ)
     {
         m_SyncRotationAxis = NetworkTransform.AxisSyncMode.None;
     }
     if (movementThreshold < 0f)
     {
         movementThreshold = 0f;
     }
     if (interpolateRotation < 0f)
     {
         interpolateRotation = 0.01f;
     }
     if (interpolateRotation > 1f)
     {
         interpolateRotation = 1f;
     }
     if (interpolateMovement < 0f)
     {
         interpolateMovement = 0.01f;
     }
     if (interpolateMovement > 1f)
     {
         interpolateMovement = 1f;
     }
 }
Ejemplo n.º 2
0
        void OnValidate()
        {
            // root parent of target must have a NetworkTransform
            if (m_Target != null)
            {
                Transform parent = m_Target.parent;
                if (parent == null)
                {
                    if (LogFilter.logError)
                    {
                        Debug.LogError("NetworkTransformChild target cannot be the root transform.");
                    }
                    m_Target = null;
                    return;
                }
                while (parent.parent != null)
                {
                    parent = parent.parent;
                }

                m_Root = parent.gameObject.GetComponent <NetworkTransform>();
                if (m_Root == null)
                {
                    if (LogFilter.logError)
                    {
                        Debug.LogError("NetworkTransformChild root must have NetworkTransform");
                    }
                    m_Target = null;
                    return;
                }
            }

            if (m_Root != null)
            {
                // childIndex is the index within all the NetworkChildTransforms on the root
                m_ChildIndex = UInt32.MaxValue;
                var childTransforms = m_Root.GetComponents <NetworkTransformChild>();
                for (uint i = 0; i < childTransforms.Length; i++)
                {
                    if (childTransforms[i] == this)
                    {
                        m_ChildIndex = i;
                        break;
                    }
                }
                if (m_ChildIndex == UInt32.MaxValue)
                {
                    if (LogFilter.logError)
                    {
                        Debug.LogError("NetworkTransformChild component must be a child in the same hierarchy");
                    }
                    m_Target = null;
                }
            }

            if (m_SendInterval < 0)
            {
                m_SendInterval = 0;
            }

            if (m_SyncRotationAxis < NetworkTransform.AxisSyncMode.None || m_SyncRotationAxis > NetworkTransform.AxisSyncMode.AxisXYZ)
            {
                m_SyncRotationAxis = NetworkTransform.AxisSyncMode.None;
            }

            if (movementThreshold < 0)
            {
                movementThreshold = 0.00f;
            }

            if (interpolateRotation < 0)
            {
                interpolateRotation = 0.01f;
            }
            if (interpolateRotation > 1.0f)
            {
                interpolateRotation = 1.0f;
            }

            if (interpolateMovement < 0)
            {
                interpolateMovement = 0.01f;
            }
            if (interpolateMovement > 1.0f)
            {
                interpolateMovement = 1.0f;
            }
        }