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

自定义的类型(ref == value) ,类型名称修改问题

0 喜欢 0 不喜欢
111 浏览
Unity C#在类型导出的时候。  自定义的类型,可以在后期支持命名修改么,我这边尝试修改未能成功
unity 需要删除meta文件,重新导出么

删除meta文件会不会导致behaviac编辑器结构坏掉,这样策划是不会接受的
最新提问 7月 5, 2016 用户: qq_575020060c761 (300 分)
修改于 7月 5, 2016 用户:jonygli

1个回答

0 喜欢 0 不喜欢
支持改名。不需要删除meta文件。

出错的话,麻烦详细描述出错步骤,最好提供出错时的数据。
最新回答 7月 5, 2016 用户: jonygli (58,410 分)
修改于 7月 5, 2016 用户:jonygli
[behaviac.TypeMetaInfo("Action", "动作", behaviac.ERefType.ERT_ValueType)]
public class Action
{
    [behaviac.MemberMetaInfo("Var_B_Loop", "动作Loop")]
    public bool Var_B_Loop = true;

    [behaviac.MemberMetaInfo("Var_E_ActionType", "动作ID")]
    public E_ActionType Var_E_ActionType = E_ActionType.ACTION_NONE;
}

[behaviac.TypeMetaInfo()]
public class AgentActionState : behaviac.Agent
{
    [behaviac.MemberMetaInfo("Var_E_ActionType", "动作ID")]
    public E_ActionType Var_E_ActionType = E_ActionType.ACTION_NONE;

    [behaviac.MemberMetaInfo("Var_B_Initalize", "状态数据初始化判断")]
    public bool Var_B_Initalize = false;

    [behaviac.MemberMetaInfo("Var_Lis_Action", "动作Lis")]
    public List<Action> Var_Lis_Action = new List<Action>();

    [behaviac.MethodMetaInfo()]
    public bool Initalize(int var)
    {
        return true;
    }

    [behaviac.MethodMetaInfo("Log", "数据Log")]
    public void Log(E_ActionType Var_ActionType)
    {
        Debug.Log("Var_E_ActionType  " + Var_E_ActionType);
    }
}

1,最开始我这边测试定义了一个Action类型,然后unity导出meta文件

2,在behaviac中编辑AgentActionState的属性    [behaviac.MemberMetaInfo("Var_Lis_Action", "动作Lis")]
    public List<Action> Var_Lis_Action = new List<Action>();

编辑一些测试数据。

3,导出AgentActionState的xml和C#文件,发现生成C#文件里我定义的 Action和behaviac命名空间下的Action同名了

4,修改自定义的Action的名字为AnimationClip

5,重新导出meta(之前的meta文件我没有删除)

6,“重新加载工作区”然后打开“元信息浏览器”,发现AgentActionState 的Var_Lis_Action成员类型依然是Action。导出后生成的C#的依然报类型冲突,还是Action
问个和以上不相关的,行为树支持深度copy么,这样只要保证原实例数据干净,copy出来的就干净
怎么个深copy?
行为树通过load生成一个实例(同时卸载该实例的镜像),作为模板。  当其他玩家,怪物 使用该行为树(状态机)的时候可以通过深度copy此实例。
我的问题,第4步(unity环境下报错,没有保存编译成功,我把生成的错误的C#删除后,保存编译成功后,可以了) ,不好意思!
...