2014年10月16日木曜日

Unity Effect : Shuriken : Scriptでパーティクルの速度を増加

UnityのShurikenを使ってて、思うんですが
個々のパーティクルの速度の変化が
出来ないという問題があります。

だんだん速度を早くしたかったんですよ。
※Limit Velocityは速度を遅くすることは出来ますが
速くは出来ません



やってみた結果
・プレイしてみないと結果が見えない
・Scriptでの評価は絶対遅い

など、使えないって感じです :p

開発側に要望出した方が確実ですね orz

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(ParticleSystem))]
public class ShurikenAddVelocity : MonoBehaviour {

 public ParticleSystem ps;
 public ParticleSystem.Particle[] particles;
 private Vector3 v;
 
 // Use this for initialization
 void Start () {
  ps = gameObject.particleSystem;
  Debug.Log(ps.name);

  particles = new ParticleSystem.Particle[ps.maxParticles];

  if ( ps == null ){
   Debug.Log("not have Particle");
   return;
  }
  else{
   Debug.Log(ps.name);
  }
 }
 
 // Update is called once per frame
 void Update () {

  ps.GetParticles(particles);

  for( long i = 0; i < ps.particleCount; ++i)
  {
   v = particles[i].velocity;
   v = (float)1.05 * v;
   particles[i].velocity = v;
  }
  ps.SetParticles(particles,ps.particleCount);
 
 }
}


参考サイト

メッシュのUV調整も行なっている
Particle System - set emitter's mesh via script

もはや目的が違う
Graphs, visualizing data

0 件のコメント:

コメントを投稿