示例#1
0
        private static TreeSelector CreateSelectorFromComposed(Core core,
                                                               ComposedBehavior target)
        {
            TreeSelector            selector;
            List <ModularBehaviour> modularBehaviours;

            modularBehaviours = new List <ModularBehaviour>();
            selector          = new TreeSelector(true, target.Weight);

            if (target.IsRandomSelector)
            {
                foreach (Type t in GetAllTypesIn(target))
                {
                    Debug.Log("Adding \"" + t.Name + " from \"" + target.Name + "\"");
                    selector.AddNewOption(GetModularBehaviourInCore(core, t));
                }
            }
            else
            {
                foreach (Type t in GetAllTypesIn(target))
                {
                    ModularBehaviour behaviour = GetModularBehaviourInCore(core, t);
                    selector.AddNewOption(behaviour);
                }
            }

            return(selector);
        }
示例#2
0
        private static ModularBehaviour GetModularBehaviourInCore(Core core, Type type)
        {
            ModularBehaviour b =
                core.gameObject.GetComponent(type) as ModularBehaviour;

            if (b == default)
            {
                b = AddTypeToCore(type, core) as ModularBehaviour;
            }
            return(b);
        }