private static void CheckGameObjectHasComponent(GameObject go, Type component) { if (go == null || component == null) { return; } if (go.GetComponent(component) == null) { FsmError fsmError = FsmErrorChecker.AddParameterError(Strings.get_FsmErrorChecker_RequiresComponentError() + Labels.StripUnityEngineNamespace(component.ToString()) + " Component!"); fsmError.Type = FsmError.ErrorType.missingRequiredComponent; fsmError.GameObject = go; fsmError.ObjectType = component; } }
private static void CheckPrefabRestrictions(GameObject go) { if (go == null) { return; } if (FsmErrorChecker.ownerIsAsset) { PrefabType prefabType = PrefabUtility.GetPrefabType(go); if (prefabType != 1 && prefabType != 2) { FsmErrorChecker.AddParameterError(Strings.get_FsmErrorChecker_PrefabReferencingSceneObjectError()); } } }
private static void CheckForEventErrors(SkillEvent fsmEvent) { if (SkillEvent.IsNullOrEmpty(fsmEvent)) { return; } SkillEventTarget fsmEventTarget = FsmErrorChecker.fsmEventTargetContextGlobal; if (FsmErrorChecker.fsmEventTargetContext != null) { fsmEventTarget = FsmErrorChecker.fsmEventTargetContext; } if (fsmEventTarget == null) { fsmEventTarget = new SkillEventTarget(); } Skill fsmTarget = Events.GetFsmTarget(FsmErrorChecker.checkingFsm, fsmEventTarget); switch (fsmEventTarget.target) { case 0: if (FsmErrorChecker.checkingState != null && !Events.FsmStateRespondsToEvent(FsmErrorChecker.checkingState, fsmEvent)) { FsmError fsmError = FsmErrorChecker.AddParameterError(Strings.get_FsmErrorChecker_InvalidEventError()); fsmError.Type = FsmError.ErrorType.missingTransitionEvent; fsmError.info = fsmEvent.get_Name(); } break; case 1: case 2: break; case 3: if (fsmTarget != null && !Events.FsmRespondsToEvent(fsmTarget, fsmEvent)) { FsmErrorChecker.AddParameterError(Strings.get_FsmErrorChecker_TargetFsmMissingEventError()); } return; case 4: FsmErrorChecker.CheckGlobalEvent(fsmEvent); return; default: return; } }