/** * @brief Initializes internal properties based on whether there is a {@link TSCollider} attached. **/ public void Initialize() { if (initialized) { return; } tsCollider = GetComponent <TSCollider>(); if (transform.parent != null) { tsParent = transform.parent.GetComponent <TSTransform>(); } if (!_serialized) { UpdateEditMode(); } if (tsCollider != null) { if (tsCollider.IsBodyInitialized) { tsCollider.Body.TSPosition = _position + scaledCenter; tsCollider.Body.TSOrientation = TSMatrix.CreateFromQuaternion(_rotation); } } else { StateTracker.AddTracking(this); } initialized = true; }
// 添加追踪 public static void AddTracking(object obj) { bool flag = StateTracker.instance != null; if (flag) { List <MemberInfo> membersInfo = Utils.GetMembersInfo(obj.GetType()); int i = 0; int count = membersInfo.Count; while (i < count) { MemberInfo memberInfo = membersInfo[i]; object[] customAttributes = memberInfo.GetCustomAttributes(true); bool flag2 = customAttributes != null; if (flag2) { int j = 0; int num = customAttributes.Length; while (j < num) { bool flag3 = customAttributes[j] is AddTracking; if (flag3) { StateTracker.AddTracking(obj, memberInfo.Name); } j++; } } i++; } } }