2017-03-14 7 views
-2

パーティクルシステムの開始色をスクリプトで変更するだけで、動作しません。パーティクルシステムの開始色を変更する方法

private ParticleSystem trailPartical; // The particle system 

public Color StartColor 
{ 
     var main = trailPartical.main; 
     main.startColor = value; 
} 

これは全く動作していない、と私はまた、減価償却バージョン試してみました:あなたは、{}内のコードから判断すると、方法としてStartColorを使用しようとしている

trailParticle.startColor = value; 

答えて

2

を、あなたが変数として宣言したとしても。また、パーティクルシステムのコンポーネントを持ってゲームに添付スクリプト内

ParticleSystem.MainModule main = GetComponent<ParticleSystem>().main; 
main.startColor = Color.blue; // <- or whatever color you want to assign 

別にこの間違いから、原因ParticleSystemにあるいくつかの変更には、コンポーネントのメインモジュールにアクセスする必要があります。

+0

これは機能しましたが、私がセッターメソッドでこれを行うことができなかった理由は何ですか?私はColor asパラメータをとるための特別なメソッドを作成しなければなりませんでした。 – BenjaFriend

+0

@BenjaFriendプログラマが提供するもう1つの答えは、それを行う方法を正確に示しています。 – Galandil

0

私はあなたがしようとしていることを知っていると思います。 1つの関数またはプロパティで色を設定するのを簡単にする必要があります。

あなたの現在のコードでこのエラーが発生します。

Aを取得または設定アクセサが期待します。

これは、あなたがset accesstorを実装しなかったためです。

このプロパティは次のようにする必要があります:これは動作するはず

void Start() 
{ 
    trailPartical = GetComponent<ParticleSystem>(); 
    StartColor = Color.red; 
} 

その後、

private ParticleSystem trailPartical; 

public Color StartColor 
{ 
    set 
    { 
     var main = trailPartical.main; 
     main.startColor = value; 
    } 
} 

...。

関連する問題