public static bool IsLinkConditionCheck(AILink link, AIUnit linkSrc) { for (int i = 0; i < link.linkConditionList.Count; i++) { AILinkCondiction con = link.linkConditionList[i]; if (con is AiInputCondiction) { AiInputCondiction input = con as AiInputCondiction; if (!CheckInputCondition(input)) { return(false); } } else if (con is AiTargetStateCondiction) { AiTargetStateCondiction targetState = con as AiTargetStateCondiction; if (!CheckTargetState(targetState, linkSrc)) { return(false); } } else { Debug.LogError("Not implemented link condition"); } } return(true); }
void SelectConditionType(AILinkCondiction condiction) { if (onSelect != null) { onSelect(condiction); } Close(); }
void OnGUI() { if (aiLink != null) { aiLink.linkToClip = AIFUIUtility.DrawAiLinkPopup(srcGroup, aiLink.linkToClip, "目标片断", 150); aiLink.checkAllCondition = GUILayout.Toggle(aiLink.checkAllCondition, "检查所有条件"); aiLink.crossFadeTime = EditorGUILayout.FloatField("动画过度时间", aiLink.crossFadeTime); GUILayout.BeginHorizontal(); GUILayout.Label("连接条件:", GUILayout.Width(150)); if (GUILayout.Button("添加条件", GUILayout.Width(100))) { AILinkCondictionSelectWnd.SelectNewCondition(delegate(AILinkCondiction con) { aiLink.linkConditionList.Add(con); }); } GUILayout.EndHorizontal(); for (int i = 0; i < aiLink.linkConditionList.Count; i++) { AILinkCondiction con = aiLink.linkConditionList[i]; EditorGUILayout.Separator(); GUILayout.BeginHorizontal(); if (GUILayout.Button("X", GUILayout.Width(30))) { if (EditorUtility.DisplayDialog("提示", "删除条件?", "OK")) { aiLink.linkConditionList.Remove(con); } } GUILayout.Label(con.ToString()); GUILayout.EndHorizontal(); GUILayout.BeginVertical(); con.OnEditorUI(); GUILayout.EndVertical(); } } //GUILayout.Button("确定"); }