コード例 #1
0
        public void parseXml(string xmlStr)
        {
            SecurityParser xmlDoc = new SecurityParser();

            xmlDoc.LoadXml(xmlStr);

            SecurityElement rootNode             = xmlDoc.ToXml();
            ArrayList       behaviorTemplateNode = rootNode.Children;
            ArrayList       behaviorTreeXmlList  = null;
            SecurityElement xmlElemTpl;
            SecurityElement xmlElemBT;
            BehaviorTree    behaviorTree = null;
            string          strId        = "";
            BTID            id           = BTID.eNone;

            foreach (SecurityElement node in behaviorTemplateNode)  // 树列表,包括树和其它信息
            {
                xmlElemTpl          = node;
                behaviorTreeXmlList = xmlElemTpl.Children;
                behaviorTree        = new BehaviorTree(new BTRoot());

                UtilXml.getXmlAttrStr(node, "name", ref strId);
                id             = m_btAttrSys.getBTIDByName(strId);
                m_id2BTDic[id] = behaviorTree;

                foreach (SecurityElement nodetree in behaviorTreeXmlList)
                {
                    xmlElemBT = nodetree;
                    m_BTFactory.parseXml(behaviorTree, xmlElemBT);
                }
            }
        }
コード例 #2
0
 // 异步加载
 public void loadBT(BTID id)
 {
     LoadParam param = Ctx.m_instance.m_poolSys.newObject<LoadParam>();
     LocalFileSys.modifyLoadParam(m_btAttrSys.m_id2ItemDic[id].m_path, param);
     param.m_loadNeedCoroutine = false;
     param.m_resNeedCoroutine = false;
     load<BehaviorTreeRes>(param);
     Ctx.m_instance.m_poolSys.deleteObj(param);
 }
コード例 #3
0
        public BehaviorTree getBT(BTID id)
        {
            if (!m_id2BTDic.ContainsKey(id))
            {
                BehaviorTreeRes res = getAndSyncLoadBT(id);
                this.unload(res.GetPath(), null);
            }

            return m_id2BTDic[id];
        }
コード例 #4
0
        // 异步加载
        public void loadBT(BTID id)
        {
            LoadParam param = Ctx.m_instance.m_poolSys.newObject <LoadParam>();

            LocalFileSys.modifyLoadParam(m_btAttrSys.m_id2ItemDic[id].m_path, param);
            param.m_loadNeedCoroutine = false;
            param.m_resNeedCoroutine  = false;
            load <BehaviorTreeRes>(param);
            Ctx.m_instance.m_poolSys.deleteObj(param);
        }
コード例 #5
0
        public BehaviorTree getBT(BTID id)
        {
            if (!m_id2BTDic.ContainsKey(id))
            {
                BehaviorTreeRes res = getAndSyncLoadBT(id);
                this.unload(res.GetPath(), null);
            }

            return(m_id2BTDic[id]);
        }
コード例 #6
0
        protected void initAi(BTID id)
        {
            //if (m_behaviorTree == null && m_skinAniModel.rootGo != null)
            {
                // 生成行为树
                BehaviorTree behaviorTree = Ctx.m_instance.m_aiSystem.behaviorTreeMgr.getBT(id) as BehaviorTree;
                m_behaviorTree = behaviorTree;
                // 生成 ai 控制器
                if (m_aiController == null)
                {
                    m_aiController = new AIController();
                    m_aiController.initControl(m_skinAniModel);
                }

                //m_aiController.vehicle.sceneGo = m_skinAniModel.rootGo;
                // 初始化 Steerings 参数信息
                initSteerings();
            }
        }
コード例 #7
0
 public BehaviorTreeRes getAndSyncLoadBT(BTID id)
 {
     return getAndSyncLoad<BehaviorTreeRes>(m_btAttrSys.m_id2ItemDic[id].m_path);
 }
コード例 #8
0
 // 同步加载
 public void syncLoadBT(BTID id)
 {
     syncLoad<BehaviorTreeRes>(m_btAttrSys.m_id2ItemDic[id].m_path);
 }
コード例 #9
0
 // 添加 AI
 virtual public void addAiByID(BTID id)
 {
     m_btID = id;
     initAi(m_btID);
 }
コード例 #10
0
 public BehaviorTreeRes getAndSyncLoadBT(BTID id)
 {
     return(getAndSyncLoad <BehaviorTreeRes>(m_btAttrSys.m_id2ItemDic[id].m_path));
 }
コード例 #11
0
 // 同步加载
 public void syncLoadBT(BTID id)
 {
     syncLoad <BehaviorTreeRes>(m_btAttrSys.m_id2ItemDic[id].m_path);
 }
コード例 #12
0
ファイル: BeingEntity.cs プロジェクト: zhutaorun/unitygame
        protected void initAi(BTID id)
        {
            //if (m_behaviorTree == null && m_skinAniModel.rootGo != null)
            {
                // 生成行为树
                BehaviorTree behaviorTree = Ctx.m_instance.m_aiSystem.behaviorTreeMgr.getBT(id) as BehaviorTree;
                m_behaviorTree = behaviorTree;
                // 生成 ai 控制器
                if (m_aiController == null)
                {
                    m_aiController = new AIController();
                    m_aiController.initControl(m_skinAniModel);
                }

                //m_aiController.vehicle.sceneGo = m_skinAniModel.rootGo;
                // 初始化 Steerings 参数信息
                initSteerings();
            }
        }
コード例 #13
0
ファイル: BeingEntity.cs プロジェクト: zhutaorun/unitygame
 // 添加 AI
 virtual public void addAiByID(BTID id)
 {
     m_btID = id;
     initAi(m_btID);
 }