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); }
/// <summary> /// 检测输入条件是否满足 /// </summary> /// <param name="input"></param> /// <returns></returns> public static bool CheckInputCondition(AiInputCondiction input) { if (input.needDiretionInput && InputManager.HasDirectionInput == false) { return false; } for (int keyIndex = 0; keyIndex < input.inputStates.Count; keyIndex++) { if (!InputManager.isKeyStateCheck(input.inputStates[keyIndex])) { return false; } } return true; }
/// <summary> /// 检测输入条件是否满足 /// </summary> /// <param name="input"></param> /// <returns></returns> public static bool CheckInputCondition(AiInputCondiction input) { if (input.needDiretionInput && InputManager.HasDirectionInput == false) { return(false); } for (int keyIndex = 0; keyIndex < input.inputStates.Count; keyIndex++) { if (!InputManager.isKeyStateCheck(input.inputStates[keyIndex])) { return(false); } } return(true); }
static void DrawLinkConditon(AiInputCondiction con) { con.needDiretionInput = GUILayout.Toggle(con.needDiretionInput, "要求方向输入", GUILayout.Width(150)); }