zoukankan      html  css  js  c++  java
  • AI系统(一)

    AIManager 管理所有阵营的AI

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public enum Camp{
        Player,
        Enemy,
        NPC,
        Build
    }
    
    public class AIManager : MonoBehaviour
    {
        private static AIManager instance;
        public static AIManager Instance
        {
            get
            {
                if (instance == null)
                {
                    GameObject gameObject = new GameObject();
                    gameObject.name = "AIManager";
                    DontDestroyOnLoad(gameObject);
                    instance = gameObject.AddComponent<AIManager>();
                }
                return instance;
            }
        }
    
    
        //全部AI
        public Dictionary<Camp, List<GameObject>> enemy = new Dictionary<Camp, List<GameObject>>();
    
        /// <summary>
        /// 注册怪物
        /// </summary>
        /// <param name="camp"></param>
        /// <param name="gameObject"></param>
        public void Register(Camp camp,GameObject gameObject)
        {
            if (!enemy.ContainsKey(camp))
            {
                enemy.Add(camp,new List<GameObject>());
            }
            if (enemy[camp] == null)
            {
                enemy[camp] = new List<GameObject>();
            }
            enemy[camp].Add(gameObject);
    
        }
        /// <summary>
        /// 销毁怪物时反注册
        /// </summary>
        /// <param name="camp"></param>
        /// <param name="gameObject"></param>
        public void UnRegister(Camp camp,GameObject gameObject)
        {
            if (!enemy.ContainsKey(camp))
            {
                return;
            }
            if (enemy[camp] == null)
            {
                return;
            }
            enemy[camp].Remove(gameObject);
        }
        /// <summary>
        /// 获取目标阵营的敌人
        /// </summary>
        /// <param name="camp"></param>
        /// <returns></returns>
        public List<GameObject> GetTargetCamp(Camp camp)
        {
            if (!enemy.ContainsKey(camp))
            {
                return null;
            }
            return enemy[camp];
        }
    }
  • 相关阅读:
    2016.07.24
    这个月
    PL/SQL: numeric or value error: character to number conversion error
    java下double相乘精度丢失问题
    Oracle中实现find_in_set
    oracle中,改变表名和字段名的大小写
    Unknown entity XXX
    Incorrect column count: expected 1, actual 5
    负数的二进制表示
    【Android】Android单例模式及使用单例模式实现自己的HttpClient工具类
  • 原文地址:https://www.cnblogs.com/DazeJiang/p/14386917.html
Copyright © 2011-2022 走看看