예제 #1
0
        //------------------------------------------------------------------------/
        // Methods
        //------------------------------------------------------------------------/
        /// <summary>
        /// Checks whether the given instance id is a valid asset for this tree view,
        /// if so it sets it
        /// </summary>
        /// <param name="instanceID"></param>
        /// <param name="line"></param>
        /// <returns></returns>
        public bool TryOpenAsset(int instanceID, int line)
        {
            TreeAsset <TreeElementType> treeAsset = EditorUtility.InstanceIDToObject(instanceID) as TreeAsset <TreeElementType>;

            if (treeAsset != null)
            {
                this.SetTreeAsset(treeAsset);
                return(true);
            }

            return(false);
        }
        public override void OnPrepare(BehaviourTreeRunner.AssetBinder binder, BTNode node)
        {
            Identify = node.Identify;
            var p = node.Parent; // TreeAsset.GetNodeById(node.parentId);

            Parent = p == null ? null : p.Asset as IBTNode;
            for (int i = 0; i < m_ConditionIds.Count; i++)
            {
                var cond = TreeAsset.GetNodeById(m_ConditionIds[i]);
                if (cond != null)
                {
                    mConditions.Add(cond.Asset as ICondition);
                    var decor = cond.Asset as IBTNodeDecorator;
                    if (decor != null)
                    {
                        mDecorators.Add(decor);
                    }
                }
            }
        }
 /// <summary>
 /// Sets the current tree asset at runtime
 /// </summary>
 /// <param name="asset"></param>
 public void SetTreeAsset(TreeAsset <TreeElementType> asset)
 {
     this.treeAsset = asset;
     this.SetTree(asset.elements);
 }