コード例 #1
0
ファイル: Brain.cs プロジェクト: edom18/UnityGoalAgentSample
        /// <summary>
        /// プランを記憶に保持
        /// </summary>
        /// <param name="planObject"></param>
        public void Memorize(PlanObject planObject)
        {
            // 重複しているプランは追加しない
            if (HasMemory(planObject))
            {
                return;
            }

            _shortMemories.Add(MakeMemory(planObject));
        }
コード例 #2
0
ファイル: Brain.cs プロジェクト: edom18/UnityGoalAgentSample
        /// <summary>
        /// 記憶にあるプランか
        /// </summary>
        bool HasMemory(PlanObject planObject)
        {
            var memory = AllMemories.Find(m => m.Plan == planObject.Plan);

            return(memory != null);
        }
コード例 #3
0
ファイル: Brain.cs プロジェクト: edom18/UnityGoalAgentSample
        /// <summary>
        /// プランオブジェクトからメモリオブジェクトを生成する
        /// </summary>
        Memory MakeMemory(PlanObject planObject)
        {
            var memory = new Memory(planObject);

            return(memory);
        }
コード例 #4
0
 public Memory(PlanObject planObject)
 {
     Plan     = planObject.Plan;
     Target   = planObject.Target;
     Position = planObject.Position;
 }
コード例 #5
0
ファイル: AIBase.cs プロジェクト: edom18/UnityGoalAgentSample
 /// <summary>
 /// プランオブジェクトを保持する(記憶する)
 /// </summary>
 /// <param name="planObject"></param>
 void StorePlanObject(PlanObject planObject)
 {
     _brain.Memorize(planObject);
 }
コード例 #6
0
ファイル: AIBase.cs プロジェクト: edom18/UnityGoalAgentSample
 /// <summary>
 /// 対象がプランオブジェクトを保持しているかを検証
 /// </summary>
 /// <param name="target">検証対象</param>
 /// <param name="planObject">取得したプランオブジェクトの参照を返す</param>
 /// <returns>保持している場合はture</returns>
 protected virtual bool HasPlan(GameObject target, out PlanObject planObject)
 {
     planObject = target.GetComponent <PlanObject>();
     return(planObject != null);
 }