您的位置:首页 > 移动开发 > Unity3D

[Unity3D]通过SerializedObject访问ParticleSystem中的参数

2015-07-20 21:03 399 查看

摘要

Unity3D中的ParticleSystem有很多在Editor面板上展现出来参数,但是通过程序访问起来比较麻烦,本文使用SerializedObject,来读取到ParticleSystem中的一些参数,该方法只在编辑器下有效,运行时无效。

正文

首先,把一个ParticleSystem做成Prefab,然后使用文本编辑器打开,可以看到下图所示,其中EmissionModule对应第二幅图中的Emission。





举个粒子,如果我想获得上图所示的Emission模块下的Bursts变量,则可以通过下面的代码完成:

SerializedObject psSource = new SerializedObject(ps);

SerializedProperty emissionProperty = psSource.FindProperty("EmissionModule");
//第一次burst的数量。
SerializedProperty count0 = emissionProperty.FindPropertyRelative("cnt0");
//第一次burst的时间
SerializedProperty time0 = emissionProperty.FindPropertyRelative("time0");

Debug.Log(time0.floatValue);
Debug.Log(count0.intValue);


最后

SerializedObject应该是可以访问任何一种Unity3D的序列化文件,另一片文章《清理material中无用的的property》也是这个原理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: