位置: 编程技术 - 正文
推荐整理分享Unity 编辑器下控制播放粒子(unity编辑器安装),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity编辑器怎么安装,unity默认编辑器,unity控件,unity控件,unity 编辑器脚本,unity编辑器怎么安装,unity编辑器安装,unity编辑器怎么安装,内容如对您有帮助,希望把文章链接给更多的朋友!
在Unity编辑器的Scene视图进行控制播放粒子ParticleSystem,可以借助方法Simulate,具体可以参照以下例子:
创建一个空对象ParticleAll,在这个对象下添加一个粒子(要添加多个粒子的话,添加到这个粒子之下),此时选中粒子,可以看到Scene视图预览播放粒子效果。附上新脚本EditParticleSystem,此为空脚本,如下: C# Code using UnityEngine;public class EditParticleSystem : MonoBehaviour{}创建一个这个脚本的编辑器类EditParticleSystemInspector,代码如下: C# Code using UnityEditor;using UnityEngine;[CustomEditor(typeof(EditParticleSystem))]public class EditParticleSystemInspector : Editor{ /// <summary> /// 滑动杆的当前时间 /// </summary> private float m_CurTime; /// <summary> /// 当前是否是预览播放状态 /// </summary> private bool m_Playing; /// <summary> /// 当前运行时间 /// </summary> private float m_RunningTime; /// <summary> /// 上一次系统时间 /// </summary> private double m_PreviousTime; /// <summary> /// 滑动杆总长度 /// </summary> private const float kDuration = f; private ParticleSystem m_ParticleSystem; private EditParticleSystem editAnimator { get { return target as EditParticleSystem; } } private ParticleSystem particleSystem { get { return m_ParticleSystem ?? (m_ParticleSystem = editAnimator.GetComponentInChildren<ParticleSystem>()); } } void OnEnable() { m_PreviousTime = EditorApplication.timeSinceStartup; EditorApplication.update = inspectorUpdate; } void OnDisable() { EditorApplication.update -= inspectorUpdate; } public override void OnInspectorGUI() { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Play")) { play(); } if (GUILayout.Button("Stop")) { stop(); } EditorGUILayout.EndHorizontal(); m_CurTime = EditorGUILayout.Slider("Time:", m_CurTime, 0f, kDuration); manualUpdate(); } /// <summary> /// 进行预览播放 /// </summary> private void play() { if (Application.isPlaying || particleSystem == null) { return; } m_RunningTime = 0f; m_Playing = true; } /// <summary> /// 停止预览播放 /// </summary> private void stop() { if (Application.isPlaying || particleSystem == null) { return; } m_Playing = false; m_CurTime = 0f; } /// <summary> /// 预览播放状态下的更新 /// </summary> private void update() { if (Application.isPlaying || particleSystem == null) { return; } if (m_RunningTime >= kDuration) { m_Playing = false; return; } particleSystem.Simulate(m_RunningTime, true); SceneView.RepaintAll(); Repaint(); m_CurTime = m_RunningTime; } /// <summary> /// 非预览播放状态下,通过滑杆来播放当前动画帧 /// </summary> private void manualUpdate() { if (particleSystem && !m_Playing) { particleSystem.Simulate(m_CurTime, true); SceneView.RepaintAll(); } } private void inspectorUpdate() { var delta = EditorApplication.timeSinceStartup - m_PreviousTime; m_PreviousTime = EditorApplication.timeSinceStartup; if (!Application.isPlaying && m_Playing) { m_RunningTime = Mathf.Clamp(m_RunningTime (float)delta, 0f, kDuration); update(); } }}检视器效果如下:拖动滑杆,即可播放当前时间的那一帧,如下所示:点击"Play",即可以自动播放整个粒子,如下所示:[教程]手把手教你制作高通虚拟按钮 突然发觉距离上一篇博文已经好久的了,想写,但是不知道要写一些什么。今天趁着此时还没有关电脑,记录记录高通虚拟按钮(VirtualButton)那点事。当
Unity for Absolute Beginners(二) InstallingThisbookwaswrittenusingUnity4.5.BecauseUnityregularlymakeschangesthatcanaffectyourprojects,youmaywishtousethe4.5versionevenifthecurrentversionisnewer.Ifyouperfer,youcaninstallmultipleversion
Unity for Absolute Beginners(一) 本篇为书籍《UnityfoeAbsoluteBeginners》翻译,英语水平有限,哪里翻译不好请指出,另寻有兴趣的人帮忙一起翻译翻译,共同学习,请勿用于商业用途,本
标签: unity编辑器安装
本文链接地址:https://www.jiuchutong.com/biancheng/381472.html 转载请保留说明!上一篇:解决Unity中,使用Ngui 的默认字体Arial,在部分Android设备显示中文不清楚,或者显示不出来问题(unity-chan)
友情链接: 武汉网站建设