• 注册
欢迎加入behaviac Q&A网站。behaviac是腾讯开源组件https://github.com/TencentOpen/behaviac 官方网站:http://www.behaviac.com/,提供各种文档和教程及手册 为了您及时的获得您最新问题的评论或者回答,请提供并验证您的邮箱
欢迎来到 behaviac Q&A。 您在bbs里的问题,管理员会当下就收到通知,不要担心管理员看不到您的问题。也请在bbs里提供您的email,这样就可以第一时间收到关于回答,评论的email的通知了。 为了节省大家的时间,请表达好你的问题,提供必要上下文,版本号,平台信息,重现步骤等。

有什么bug我没注意到的吗

0 喜欢 0 不喜欢
179 浏览

using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
[behaviac.TypeMetaInfo()]
class users : behaviac.Agent
{

    public static users useroop = null;
    public BehaviacSystem behaviacSystem = null;

    [behaviac.MemberMetaInfo()]
    public string nameStr = "李四";


    public string behaviorTree = "firstBehav";
    protected bool btloadResult = false;
    [behaviac.MethodMetaInfo()]
    public void show()
    {
        print("攻击");
    }

    void Awake()
    {

        this.SetIdFlag(1);  //当(IdFlag & IdMask)!= 0的时候,该Agent才被调试。
        useroop = this;
        bool result = false;
        //behaviacSystem = GetComponent<BehaviacSystem>();
        behaviacSystem = BehaviacSystem.Instance;
        if (behaviacSystem == null)
        {
            Debug.LogError("do not contain behaviac system in the level!");
        }
        else
        {
            result = behaviacSystem.Init();
            if (!result)
                Debug.LogError("behaviac system init failed!");
        }

        behaviac.Agent.BindInstance(users.useroop, "usersEntity");  //获取行为树里的 users 元信息,  usersEntity是注册名


        //behaviac.Workspace.Instance.FilePath = "F:/ceshi"; //行为树路径
        behaviac.Workspace.Instance.FileFormat = behaviac.Workspace.EFileFormat.EFF_cs;
        if (behaviorTree.Length > 0)
        {
            btloadResult = btload(behaviorTree, true);
            if (btloadResult)
                btsetcurrent(behaviorTree);
            else
                Debug.LogError("Behavior tree data load failed! " + behaviorTree);
        }
    }


    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            users.useroop.nameStr = "张三";
        }
    }

}
 

 

 

 

 

 

 

 

 

 

 

 

 

 

using UnityEngine;
using System.Collections;
using System;
#if UNITY_EDITOR || UNITY_STANDALONE_WIN
using System.Runtime.InteropServices;
#endif

//[AddComponentMenu("BehaviacSystem")]
public class BehaviacSystem
{
    #region singleon
    private static BehaviacSystem _instance;
    public static BehaviacSystem Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new BehaviacSystem();
            }

            return _instance;
        }
    }
    #endregion

    protected static BehaviacFileManager ms_fileSystem = null;

    private string WorkspaceExportPath
    {
        get
        {
            string relativePath = "/behavior/behave01/behaviors";
            string path = "";
            if (Application.platform == RuntimePlatform.WindowsEditor)
            {
                path = Application.dataPath + relativePath;
            }
            else if (Application.platform == RuntimePlatform.WindowsPlayer)
            {
                path = Application.dataPath + relativePath;
            }
            else
            {
                path = "Assets" + relativePath;
            }

            return path;
        }
    }

    public bool Init()
    {
        if (ms_fileSystem == null)
        {
            ms_fileSystem = new BehaviacFileManager();
        }

        {
            //< write log file
            behaviac.Config.IsLogging = true;
            //behaviac.Config.IsSocketing = false;

            behaviac.Workspace.Instance.FilePath = this.WorkspaceExportPath; //行为树存放的文件夹
            //behaviac.Workspace.Instance.FileFormat = behaviac.Workspace.EFileFormat.EFF_cs;
            behaviac.Workspace.Instance.FileFormat = behaviac.Workspace.EFileFormat.EFF_cs;

            //register names
            behaviac.Agent.RegisterInstanceName<users>("usersEntity"); //注册元信息
            behaviac.Workspace.Instance.ExportMetas("F:\\behavor\\entity\\usersXml.xml");//最终会在entity文件夹中,生成一个 usersXml文件! 这个文件夹里面存储了 users类的信息!  可以所有元信息 都存储在一个 usersXml.xml中!

            behaviac.Debug.Log("Behaviac meta data export over.");
            behaviac.Agent.SetIdMask(0xffffffff);  //设置一下mask值, 这个值时全局的! 供调用。 当(IdFlag & IdMask)!= 0的时候,该Agent才被调试。
        }

        return true;
    }


    // void Start()
    // {
    //Init();
    //}

    public void Uninit()
    {
        behaviac.Workspace.Instance.Cleanup();
    }

}
 

 

 

image

 

 

 

 

 

 

 

 

最新提问 6月 28, 2016 用户: qq_576a6645d6e2a (410 分)

2 个回答

0 喜欢 0 不喜欢
我按空格键,还是不执行show方法
最新回答 6月 28, 2016 用户: qq_576a6645d6e2a (410 分)
0 喜欢 0 不喜欢

image

这个是我行为树的设计

最新回答 6月 28, 2016 用户: qq_576a6645d6e2a (410 分)
你调用btexec了吗?
谢了哈,  前面好像就这个问题,没涨记性
哈哈。。。下次注意点儿
...