質問編集履歴

1 確認

tkmnusr

tkmnusr score 227

2016/09/25 17:24  投稿

パーティクルシステムの再生位置をスクリプトで制御したい。
###前提・実現したいこと
シーン上のパーティクルシステムの再生時間をスクリプトで制御したいと思っています。
シーン上にパーティクルシステムを置いた場合、そのシミュレートとして、ゲームを実行しなくても、Particle Effectパネルで、Playback Time(再生時間)を指定できたり、Stopボタンで、Playback Timeを0.00の時間にリセットすることができますが、この操作をゲーム実行時にスクリプトで行いたいと思っています。
timeプロパティがそれらしき変数と思ってコードを組んでみたのですが、変化はありませんでした。
スクリプトで、パーティクルシステムをリセット(Playback Timeを0.00にするイメージ)したり、再生位置を指定(Playback Timeを指定した時間にするイメージ)して、途中から再生たりする方法のご教授をお願い致します。
ちなみにStop()を呼び出しても、パーティクルの再生時間は0.00にリセットされないことを確認しています。
###試したこと
timeプロパティを操作してみたが、変化しない。
```C#
   GameObject pObject;
   ParticleSystem particle;
```C#   
GameObject pObject;
ParticleSystem particle;
   void Start(){
       pObject = GameObject.Find ("Particle System");
       particle = pObject.GetComponent<ParticleSystem> ();
       particle.Stop ();
   }
   void Update(){
       if (Input.GetKeyDown (KeyCode.X)) {
           particle.time = 0; //リセットされない。
           particle.Play ();
       }
       if (Input.GetKeyDown (KeyCode.Y)) {
           particle.time = 3; //途中から再生されない。
           particle.Play ();
       }
   }
```
  • Unity

    5661 questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る