Ejemplo n.º 1
0
        public void ChangeBehavior(string AIName)
        {
            ExternalBehaviorTree tree = Miscs.LoadResource <ExternalBehaviorTree>("AI/Avatar/" + AIName, BundleType.RESOURCE_FILE);

            this._btree.ExternalBehavior = tree;
            this._hasOverridenBehavior   = true;
        }
Ejemplo n.º 2
0
        private void PostStartHandleBenchmark()
        {
            if (this.isBenchmark)
            {
                Singleton <AvatarManager> .Instance.SetAutoBattle(true);

                List <BaseMonoAvatar> allPlayerAvatars = Singleton <AvatarManager> .Instance.GetAllPlayerAvatars();

                for (int i = 0; i < allPlayerAvatars.Count; i++)
                {
                    if (!string.IsNullOrEmpty(this.avatarDevDatas[i].avatarAI))
                    {
                        ExternalBehaviorTree tree = Miscs.LoadResource <ExternalBehaviorTree>(this.avatarDevDatas[i].avatarAI, BundleType.RESOURCE_FILE);
                        ((BTreeAvatarAIController)allPlayerAvatars[i].GetActiveAIController()).autoBattleBehavior   = tree;
                        ((BTreeAvatarAIController)allPlayerAvatars[i].GetActiveAIController()).autoMoveBehvior      = tree;
                        ((BTreeAvatarAIController)allPlayerAvatars[i].GetActiveAIController()).supporterBehavior    = tree;
                        allPlayerAvatars[i].GetComponent <BehaviorDesigner.Runtime.BehaviorTree>().ExternalBehavior = tree;
                        allPlayerAvatars[i].GetComponent <BehaviorDesigner.Runtime.BehaviorTree>().EnableBehavior();
                    }
                }
                Screen.sleepTimeout = -1;
                SuperDebug.CloseAllDebugs();
                new GameObject {
                    name = "__Benchmark"
                }.AddComponent <MonoBenchmarkSwitches>();
            }
        }
Ejemplo n.º 3
0
        public void ChangeBehavior(string AIName)
        {
            ExternalBehaviorTree tree = Miscs.LoadResource <ExternalBehaviorTree>("AI/Monster/" + AIName, BundleType.RESOURCE_FILE);

            if (tree != null)
            {
                this._btree.ExternalBehavior = tree;
                this.EnableBehavior();
            }
        }
Ejemplo n.º 4
0
    void Start()
    {
        // m_BehaviorTree = Resources.Load<BehaviorTree>("BehaviorTree/EnemyNormalAI");
        ExternalBehaviorTree extBT = Resources.Load <ExternalBehaviorTree>("BehaviorTree/EnemyNormalAI");
        BehaviorTree         bt    = gameObject.AddComponent <BehaviorTree>();

        bt.ExternalBehavior = extBT;
        bt.StartWhenEnabled = false;

        m_BehaviorTree = bt;
        // m_BehaviorTree = gameObject.GetComponent<BehaviorTree>();
    }
Ejemplo n.º 5
0
    private void RunBD(string _path)
    {
        ExternalBehaviorTree externalBehaviorTree = Resources.Load(_path) as ExternalBehaviorTree;

        if (null != externalBehaviorTree)
        {
            GameObject   go   = new GameObject("lalala");
            BehaviorTree tree = go.AddComponent <BehaviorTree>();
            tree.ExternalBehavior = externalBehaviorTree;
            //tree.SetBehaviorSource(externalBehaviorTree.BehaviorSource);
            //tree.Start();
        }
    }
Ejemplo n.º 6
0
        public bool SetBehaviorTree(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                return(false);
            }
#if UNITY_EDITOR
            string location          = "Assets/Behavior Designer/AIData/" + name + ".asset";
            ExternalBehaviorTree ebt = UnityEditor.AssetDatabase.LoadAssetAtPath(location, typeof(ExternalBehaviorTree)) as ExternalBehaviorTree;
            _behavior_tree.ExternalBehavior    = ebt;
            _behavior_tree.RestartWhenComplete = true;
#endif
            return(true);
        }
Ejemplo n.º 7
0
        public void SetActiveTree(ExternalBehaviorTree tree)
        {
            if (tree == null)
            {
                Debug.LogError("Null tree provided to \"SetActiveTree\" function!");
                return;
            }
            ExternalBehaviorTree extree = Object.Instantiate(tree);

            extree.Init();
            GetComponent <BehaviorTree>().DisableBehavior();
            GetComponent <BehaviorTree>().ExternalBehavior = extree;
            GetComponent <BehaviorTree>().EnableBehavior();
        }
Ejemplo n.º 8
0
    protected void InitBehaviorTree()
    {
        ExternalBehaviorTree extBT = Resources.Load <ExternalBehaviorTree>(behaviorDesignerPath);

        if (extBT == null)
        {
            return;
        }
        BehaviorTree bt = gameObject.AddComponent <BehaviorTree>();

        bt.ExternalBehavior    = extBT;
        bt.StartWhenEnabled    = false;
        bt.RestartWhenComplete = true;
        m_BehaviorTree         = bt;
        m_BehaviorTree.DisableBehavior();
        m_BehaviorTree.EnableBehavior();
    }
Ejemplo n.º 9
0
    public static void OpenBuildAsset()
    {
        GetWindow(typeof(BuildAssetEditor));
        UnityEngine.Object   asset     = AssetDatabase.LoadAssetAtPath("Assets/Res/SkillLibrary/player/" + "1004" + ".asset", typeof(UnityEngine.Object));
        ExternalBehaviorTree skillTree = asset as ExternalBehaviorTree;

        if (skillTree != null)
        {
            skillTree.SetVariableValue("StopBehaviors", false);

            skillTree.SetVariableValue("SkillCD", 5f);
            EditorUtility.SetDirty(asset);
            AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();
            AssetDatabase.SaveAssets();
        }
    }
Ejemplo n.º 10
0
        public ExternalBehaviorTree GetBehaviorTreeAsset(string assetName)
        {
            string assetPath = GetAssetPathByAssetName <TextAsset>(assetName);

            assetName = assetName.ToLower();
            AddAssetBundleNameDic(assetPath, assetName + BytesExt);
            BundleWrapper bundle = LoadBundle(assetName + BytesExt);

            if (bundle.IsEmpty())
            {
                return(null);
            }

            string[]             names = bundle.GetAllAssetNames();
            ExternalBehaviorTree ta    = bundle.LoadAsset <ExternalBehaviorTree>(names[0]);

            return(ta);
        }
Ejemplo n.º 11
0
        public BTreeAvatarAIController(BaseMonoEntity avatar) : base(avatar)
        {
            this._avatar = (BaseMonoAvatar)avatar;
            string path = "AI/Avatar/AvatarAutoBattleBehavior_Alt";

            this.autoBattleBehavior = Miscs.LoadResource <ExternalBehaviorTree>(path, BundleType.RESOURCE_FILE);
            this.autoMoveBehvior    = Miscs.LoadResource <ExternalBehaviorTree>("AI/Avatar/AvatarAutoMoveBehavior", BundleType.RESOURCE_FILE);
            string supporterAI = "AvatarSupporterBehavior_Alt";

            if (this._avatar.config.AIArguments.SupporterAI != string.Empty)
            {
                supporterAI = this._avatar.config.AIArguments.SupporterAI;
            }
            this.supporterBehavior          = Miscs.LoadResource <ExternalBehaviorTree>("AI/Avatar/" + supporterAI, BundleType.RESOURCE_FILE);
            this._btree                     = this._avatar.gameObject.AddComponent <BehaviorDesigner.Runtime.BehaviorTree>();
            this._btree.RestartWhenComplete = true;
            this._btree.StartWhenEnabled    = false;
            this._btree.DisableBehavior();
            this._btree.UpdateInterval = UpdateIntervalType.EveryFrame;
        }
Ejemplo n.º 12
0
        public void SetActiveTree(AIActiveState input)
        {
            ExternalBehaviorTree extree = null;

            switch (input)
            {
            case AIActiveState.Calm:
                extree = Object.Instantiate(traits.calmTree);
                break;

            case AIActiveState.Suspicious:
                extree = Object.Instantiate(traits.suspiciousTree);
                break;

            case AIActiveState.Hostile:
                extree = Object.Instantiate(traits.hostileTree);
                break;
            }
            extree.Init();
            GetComponent <BehaviorTree>().DisableBehavior();
            GetComponent <BehaviorTree>().ExternalBehavior = extree;
            GetComponent <BehaviorTree>().EnableBehavior();
        }
Ejemplo n.º 13
0
        private void InitBTree(string AIName)
        {
            this._btree = base._monster.gameObject.AddComponent <BehaviorDesigner.Runtime.BehaviorTree>();
            this._btree.RestartWhenComplete = true;
            this._btree.StartWhenEnabled    = false;
            if (!this._disableBehaviorWhenInit)
            {
                this._btree.DisableBehaviorWhenMonoDisabled  = false;
                this._btree.TryEnableBehaviorWhenMonoEnabled = false;
            }
            ExternalBehaviorTree tree = Miscs.LoadResource <ExternalBehaviorTree>("AI/Monster/" + AIName, BundleType.RESOURCE_FILE);

            this._btree.ExternalBehavior = tree;
            if (this._disableBehaviorWhenInit)
            {
                this._btree.CheckForSerialization();
                this._btree.DisableBehavior();
            }
            else
            {
                this._btree.UpdateInterval = UpdateIntervalType.Manual;
            }
        }