• PlayMaker 对 PlayMakerFSM 里变量的操作


    HutongGames.PlayMaker; //需要引用这个命名空间

    红色的字体是对变量的操作,其他的没啥关系.

    #region 判断为 PlayMakerFSM 组件时
                if (behaviour.GetType() == typeof(PlayMakerFSM))
                {
                    PlayMakerFSM temp_PlayMakerFSM = behaviour as PlayMakerFSM;
                    compKey = temp_PlayMakerFSM.Fsm.Name;//拿到状态机的名字,如 FSM01
    
                    #region 操作 float 类型的变量(其他类型的变量也类似)
                    //拿到 PlayMakerFSM组件 的所有Float类型的变量值,存在数组里
                    NamedVariable[] floatArray = temp_PlayMakerFSM.FsmVariables.GetNamedVariables(VariableType.Float);
                    //Debug.Log("floatArray长度:" + floatArray.Length);
                    foreach (var variable in floatArray)
                    {
                        //判断变量是否是 inspector 的,是的话再判断是什么类型的,存入相应的字典里
                        if (variable.ShowInInspector == true)
                        {
                            //得到变量的要存到字典的Value (variable.RawValue 也可以拿到变量值,不过应该是FsmFloat类型的)  
    float variableValue = float.Parse(variable.ToString());//拿到变量的值(它是FsmFloat类型的,要先转换为string,再转为float)
                            //Vector3也是一样的,它是FsmVector3类型的,先转为string再转为Vector3(vector3与string转换方法,http://www.cnblogs.com/Peng18233754457/p/8653663.html)
    //Quaternion也是一样的,网上有string与Quaternion的转换方法,http://www.cnblogs.com/Peng18233754457/p/8763137.html
    //((FsmFloat)variable).Value = 1.23;//改变变量的值
    //得到变量的要存到字典的Key (变量的名称) string variableKey = variable.Name;//拿到变量的名称 //字典里不包含这个键,就直接加进去 if (!float_TempDic.ContainsKey(variableKey)) { float_TempDic.Add(variableKey, variableValue); } //字典里包含这个键,就改掉这个键对应的值 else { float_TempDic[variableKey] = variableValue; } //当这个字典里有东西的时候 if (float_TempDic.Keys.Count != 0) { //加到外层字典 if (!describePath.comp_FloatVar_Val.ContainsKey(compKey)) { //describePath.comp_FloatVar_Val.Add(compKey, float_TempDic); describePath.comp_FloatVar_Val.Add(compKey, JsonUtility.ToJson(new Serialization<string, float>(float_TempDic))); } else { describePath.comp_FloatVar_Val[compKey] = JsonUtility.ToJson(new Serialization<string, float>(float_TempDic)); } float_TempDic.Clear(); } } }
  • 相关阅读:
    CLBZDQ
    CF1559D 题解
    DP 的凸优化
    正睿暑期集训7B
    基于 TiSpark 的海量数据批量处理技术
    PowerDesigner16.5下载和安装教程
    使用TiDB MPP
    使用 TiDB 构建实时应用
    oracle转mysql数据库
    kafka-jdbc-connector-sink实现kafka中的数据同步到mysql
  • 原文地址:https://www.cnblogs.com/Peng18233754457/p/8763127.html
Copyright © 2020-2023  润新知