Пример #1
0
    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 SelectConditionType(AILinkCondiction condiction)
 {
     if (onSelect != null)
     {
         onSelect(condiction);
     }
     Close();
 }
Пример #4
0
    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("确定");
    }