A. unity 4.3.4 脚本控制多个粒子系统同时开关 怎么实现
新版本的 可以用
particleSystem.enableEmission = true or false; 来控制打开和关闭
B. ae粒子脚本用不了
速率和粒子产生是两回事,emitter是决定粒子发射量的,只把速率给0,粒子只是不运动了,但还是出生的。你把发射率调到很大,默认是100,比如调到5000给一关键帧,下一帧给成0,在把粒子的寿命时间调长,就不会“动”了。
C. 怎么用脚本实现按钮播放含有子节点的粒子特效动画
我们要在web里做动画的选择有很多,比如通过在canvas上做图来实现动画,当然还可以使用JavaScript脚本代码
D. ogre 用粒子编辑器编辑好的粒子脚本.particle 怎么在ogre程序中调用
可以再ogre教程框架的creatScene函数里添加以下代码即可:(当然可以在任何地方调用粒子脚本都行,这只是个粒子)
void test_particle::createScene(void)
{
//第一个参数表示粒子系统的名字,随便起,第二个就是你的粒子系统脚本,一般在你安装的ogre sdk路径的media粒子系统文件夹下
Ogre::ParticleSystem* ps=mSceneMgr->createParticleSystem("cloud","Examples/Cloud") ;
mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(ps);
// Set ambient light
mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));
// Create a light
Ogre::Light* l = mSceneMgr->createLight("MainLight");
l->setPosition(20,80,50);
}
E. unity3D中如何通过脚本控制粒子初始速度
Unity中的粒子系统使用起来还是比较方便的。不过在实际过程中遇到这样的一个问题:需要动态的来控制一个粒子系统组件所能产生的最大粒子数。看doc上说是有maxParticles来控制,但实际上却没有这个开放的参数,只能通过其它的方式来实现。
这里可以通过手动产生粒子的方式来实现,也即ParticleSystem中的Emit方法,具体代码如下:
[csharp] view plain
public class ParticleSystemComp : MonoBehaviour
{
ParticleSystem mParticleSystem = null;
int mMaxParticles = 0;
public int maxParticles
{
get
{
return mMaxParticles;
}
set
{
mMaxParticles = value;
}
}
void Awake()
{
mParticleSystem = this.gameObject.GetComponent<ParticleSystem>();
mParticleSystem.emissionRate = 0.0f;
mMaxParticles = mParticleSystem.particleCount;
mParticleSystem.Clear();
}
void Update()
{
if (mParticleSystem != null)
{
if (mParticleSystem.particleCount < mMaxParticles)
{
mParticleSystem.Emit(mMaxParticles - mParticleSystem.particleCount);
}
}
}
}
实现过程是对于每个ParticleSystem添加一个额外的组件,通过该组件来原始PS的更新。其中的更新原则是判断当前活动的粒子数量,如果粒子数小于指定的最大值的话就再重新生成几个新的粒子出来进行填充。
此外,出于性能考虑,其中Update内部的操作也可以移至FixedUpdate中进行以减少更新次数,但是视觉上并不会带来太大的差异。
F. 怎么用脚本去控制粒子系统 我将U3D自带的frames添加到人物脚上,想让人物再踢腿的时候烟火出现
只是简单的构思了一下,有错误的地方或者不好的地方欢迎指出:
function Update () {
if(Input.GetButton("Fire1")){ //点击鼠标左键
animation.Play(/*要播放的动作名*/); //播放踢腿动作
particleEmitter.emit = true; //发射粒子效果
PTime(); //粒子效果持续时间(因为Update跟OnGUI里不能用yield, 另写个方法)
}
}
function PTime(){
yield WaitForSeconds(1/*根据播放动作的时间长短自己决定吧*/);
particleEmitter.emit = false; //取消粒子效果
}
G. 超酷粒子生成器脚本为什么有红线
你用的插件没有注册,是试用版的,所以输出有大叉啊虚线什么的,国外的插件很多都是这样的,使用没限制,输出时不注册的会带水樱。