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 != )
{
//加到外层字典
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();
}
}
}

PlayMaker 对 PlayMakerFSM 里变量的操作的更多相关文章

  1. MySQL 服务器变量 数据操作DML-视图

    原文:MySQL 服务器变量 数据操作DML-视图 SQL语言的组成部分 常见分类: DDL:数据定义语言 DCL:数据控制语言,如授权 DML:数据操作语言 其它分类: 完整性定义语言: DDL的一 ...

  2. 【JAVA】类继承对父类静态变量的操作

    对静态变量的操作存在继承时还是有一些模糊,做了个简单的测试: class Test { private String mName; public Test(String name) { setName ...

  3. Go 环境变量相关操作

    Go语言中os包提供了一些环境变量的操作封装.包括: 设置环境变量:Setenv 获取环境变量:Getenv 删除指定的环境变量:Unsetenv 获取所有环境变量:Environ 清除所有环境变量: ...

  4. IDEA批量修改变量名操作

    批量修改变量名操作:shift+F6选中变量---->修改变量---->Enter回车

  5. 编写Java程序,实现多线程操作同一个实例变量的操作会引发多线程并发的安全问题。

    查看本章节 查看作业目录 需求说明: 多线程操作同一个实例变量的操作会引发多线程并发的安全问题.现有 3 个线程代表 3 只猴子,对类中的一个整型变量 count(代表花的总数,共 20 朵花)进行操 ...

  6. CodeIgniter框架——访问方式 URI 分配变量 数据库操作

    1.访问方式: CodeIgniter 的访问URL使用的是pathinfo,入口文件/控制器/方法(/参数列表) eg:localhost/index.php/welcome/index/id 第一 ...

  7. 使用HTML5里的classList操作CSS类

    在HTML5 API里,页面DOM里的每个节点上都有一个classList对象,程序员可以使用里面的方法新增.删除.修改节点上的CSS类.使用classList,程序员还可以用它来判断某个节点是否被赋 ...

  8. Windows下面对环境变量的操作

    如何在cmd命令行中查看.修改.删除与添加环境变量:首先明确一点:所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改.也就是说当关闭此cmd命令行窗口后,将不再起作用.永久性修改 ...

  9. javascript 里找元素操作元素

      javascript  一.找到元素. var d = document.getElementById("") var d = document.getElementsByNa ...

随机推荐

  1. Android简单的monkey测试

    Android中的monkey测试是比较常用的工具了,设定好monkey之后,让手机跑一晚上,第二天分析日志,这样能更加有效率的工作. monkey测试的工具比较多,基本的方法都差不多. 抓取日志: ...

  2. 回溯法和DFS leetcode Combination Sum

    代码: 个人浅薄的认为DFS就是回溯法中的一种,一般想到用DFS我们脑中一般都有一颗解法树,然后去按照深度优先搜索去寻找解.而分支界限法则不算是回溯,无论其是采用队列形式的还是优先队列形式的分支界限法 ...

  3. java反射机制的粗略理解

    java反射机制: 涉及的对象:Class, Object, 函数:Class类:[forName(String className):static:getClass():public],Object ...

  4. C#之Socket断线重连

    一.网上常用方法 1.当Socket.Conneted == false时,调用如下函数进行判断 /// /// 当socket.connected为false时,进一步确定下当前连接状态 /// / ...

  5. 不应该使用Connected属性作为Socket是否连接上的依据

    最近在做一个接口,用到了Socket异步通信. 调试了3天了,一直将Socket的Connected属性作为客户端和服务器端是否连接上的依据.今天发现我错了. 下面是从一个csdn博友写的,很好. h ...

  6. c#继承、多重继承

    c#类 1.c#类的继承 在现有类(基类.父类)上建立新类(派生类.子类)的处理过程称为继承.派生类能自动获得基类的除了构造函数和析构函数以外的所有成员,可以在派生类中添加新的属性和方法扩展其功能.继 ...

  7. UINavigationController + UIScrollView组合,视图尺寸的设置探秘(三)

    还是在苹果的 View Controller Catalog for iOS 文章中找到答案.文中提到了两点: 1.If the navigation bar or toolbar are visib ...

  8. Zookeeper学习文档

      1. Zookeeper简介 ZooKeeper是一个开源的分布式框架,提供了协调分布式应用的基本服务.它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronizat ...

  9. JavaScript之入门篇(二)

    终于学到后面的语法部分了,感觉这门语言基础部分和当初学习VB的时候感觉一样一样的,章节目录让我不禁又想到了VB课本.由于怕学过了,过段时间忘了,于是,大概总结一下. 数据类型部分 ① Typeof操作 ...

  10. 咕咕(数位dp+AC自动机)

    咕咕(数位dp+AC自动机) 若一个字符串的字符集合是0~m-1,那么称它为m进制字符串.给出n个m进制字符串\(s_i\),每个字符串的权值为\(v_i\).对于另一个m进制字符串\(S\),设\( ...