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; } }
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; } }