[Unity插件]Behavior Designer:SharedVariable与GlobalVariable

设置SharedVariable与GlobalVariable:


上面的SharedV是SharedVariable,变量范围是当前行为树;

下面的GlobalV是GlobalVariable,变量范围是所有的行为树。


Shared变量与普通变量的区别:

Shared变量是对普通变量的进一步封装。Shared变量可以引用Variables面板上面设置的变量(即SharedVariable),同时也可以引用GlobalVariable面板上面设置的变量(即GlobalVariable)。如果同一个物体被多个节点引用,则可以将该物体设置为SharedVariable或者GlobalVariable。

using UnityEngine;

namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityGameObject
{
    [TaskCategory("Basic/GameObject")]
    [TaskDescription("测试SharedGameObject")]
    public class Task1 : Conditional
    {
        public SharedGameObject sharedGameObject;      
        public GameObject a;
        public SharedProperty sharedProperty;
    }
}


自定义SharedVariable类型:

using UnityEngine;

public class Property : MonoBehaviour {

    public int nowHp = 100;
    public int maxHp = 100;

}

using UnityEngine;
using System.Collections;

namespace BehaviorDesigner.Runtime
{
    [System.Serializable]
    public class SharedProperty : SharedVariable
    {
        public Property Value { get { return mValue; } set { mValue = value; } }
        [SerializeField]
        private Property mValue;

        public override object GetValue() { return mValue; }
        public override void SetValue(object value) { mValue = (Property)value; }

        public override string ToString() { return (mValue == null ? "null" : mValue.name); }
        public static implicit operator SharedProperty(Property value) { var sharedVariable = new SharedProperty(); sharedVariable.SetValue(value); return sharedVariable; }
    }
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值