• 注册
欢迎加入behaviac Q&A网站。behaviac是腾讯开源组件https://github.com/TencentOpen/behaviac 官方网站:http://www.behaviac.com/,提供各种文档和教程及手册 为了您及时的获得您最新问题的评论或者回答,请提供并验证您的邮箱

Unity C# List(数组嵌套问题)

0 喜欢 0 不喜欢
144 浏览

数据原模型

[behaviac.TypeMetaInfo("ActionClip", "动作", behaviac.ERefType.ERT_ValueType)]
public class Act
{
    [behaviac.MemberMetaInfo("Var_B_Loop", "动作Loop")]
    public bool Var_B_Loop;

    [behaviac.MemberMetaInfo("Var_E_ActType", "动作ID")]
    public E_ActType Var_E_ActType;

    [behaviac.MemberMetaInfo("Var_E_Length", "动作长度")]
    public float Var_E_Length;

    [behaviac.MemberMetaInfo("Var_E_Start", "动作配置开始播放的时间戳")]
    public float Var_E_Start;

    [behaviac.MemberMetaInfo("Var_E_End", "动作配置结束播放的时间戳")]
    public float Var_E_End;

    [behaviac.MemberMetaInfo("Var_E_Name", "动作Name")]
    public string Var_E_Name;

    [behaviac.MemberMetaInfo("Var_B_Interrupt", "动作是否可以被打断")]
    public bool Var_B_Interrupt;

    [behaviac.MemberMetaInfo("Var_Lis_Interrupt", "当前动作否可以被哪些打断")]
    public List< E_ActType> Var_Lis_Interrupt;

}

 

 

 

 

 

生成的C#文件

 

    [behaviac.GeneratedTypeMetaInfo()]
    class Precondition_bt_warrior_attach3 : behaviac.Precondition
    {
        public Precondition_bt_warrior_attach3()
        {
            opr2 = new List<Act>();
            opr2.Capacity = 3;
            Act opr2_item0;
            opr2_item0 = new Act();
            opr2_item0.Var_B_Interrupt = true;
            opr2_item0.Var_B_Loop = true;
            opr2_item0.Var_E_ActType = E_ActType.ACTION_1;
            opr2_item0.Var_E_End = 6.67f;
            opr2_item0.Var_E_Length = 6.667f;
            opr2_item0.Var_E_Name = "Idle";
            opr2_item0.Var_E_Start = 0f;
             = new List<E_ActType>();
            .Capacity = 2;

            E_ActType _item0 = E_ActType.ACTION_12;
            .Add(_item0);
            E_ActType _item1 = E_ActType.ACTION_21;
            .Add(_item1);

            opr2.Add(opr2_item0);
            Act opr2_item1;
            opr2_item1 = new Act();
            opr2_item1.Var_B_Interrupt = true;
            opr2_item1.Var_B_Loop = true;
            opr2_item1.Var_E_ActType = E_ActType.ACTION_12;
            opr2_item1.Var_E_End = 0.867f;
            opr2_item1.Var_E_Length = 0.867f;
            opr2_item1.Var_E_Name = "Run";
            opr2_item1.Var_E_Start = 0f;
             = new List<E_ActType>();
            .Capacity = 2;
            E_ActType _item0 = E_ActType.ACTION_1;
            .Add(_item0);
            E_ActType _item1 = E_ActType.ACTION_21;
            .Add(_item1);

            opr2.Add(opr2_item1);
            Act opr2_item2;
            opr2_item2 = new Act();
            opr2_item2.Var_B_Interrupt = true;
            opr2_item2.Var_B_Loop = false;
            opr2_item2.Var_E_ActType = E_ActType.ACTION_21;
            opr2_item2.Var_E_End = 1.7f;
            opr2_item2.Var_E_Length = 1.667f;
            opr2_item2.Var_E_Name = "Attack";
            opr2_item2.Var_E_Start = 0f;
            opr2.Add(opr2_item2);
            this.Phase = Precondition.EPhase.E_ENTER;
            this.IsAnd = true;
        }

红色为标记的部分是生成出来的,有错误


 

最新提问 7月 10, 2016 用户: qq_575020060c761 (300 分)
这个问题在处理,会尽快提交。

1个回答

0 喜欢 0 不喜欢
下个新版本(3.5.7)会修复该bug,到时候注意更新。目前先麻烦手动把变量补上去opr2.Var_Lis_Interrupt
最新回答 7月 11, 2016 用户: cainhuang (33,810 分)
修改于 7月 11, 2016 用户:jonygli
好的,谢谢反馈!
...