現在、Unityでゲーム開発しています。
ブーストの残量によってそこから放出されるパーティクルの色を変更、という演出を実装したいのですが、パーティクルの色が変わりません。
mainの指定のあたりで躓いているのでしょうか。
旧形式の資料が混在しているのでその周りの有益な資料がなかなか見つかりません。
どなたかお力添えお願いいたします。
Unityのverは2019.2.3f1です。
画像のように、値は切り替わっているようですがインスペクター及びゲーム画面では変わっていません
c#
1private float currentBoostRemain = 100; //ブースト燃料の残り 2 [SerializeField] 3 private Color boostNormalColor = new Color(0, 245, 255, 255); 4 [SerializeField] 5 private Color boostOverHeatColor = new Color(255, 0, 110, 255); 6/// 7if (TouchUtility.GetTouch() == TouchInfo.Moved || TouchUtility.GetTouch() == TouchInfo.Stationary) 8 { 9 //残りブーストの残量を計算 10 currentBoostRemain -= boostCost * Time.deltaTime; 11 if (currentBoostRemain < 0) 12 currentBoostRemain = 0; 13 14 if (isBurst) 15 currentBoostRemain = boostMax; 16 else 17 { 18 var l = Mathf.InverseLerp(0, boostMax, currentBoostRemain);//0~Maxの間の残りブーストの割合を計算 19 var main = boostParticle.main; 20 var c = main.startColor.color;//割合に応じたカラーの値を取る 21 c.r = Mathf.Lerp(boostOverHeatColor.r, boostNormalColor.r, l); 22 c.g = Mathf.Lerp(boostOverHeatColor.g, boostNormalColor.g, l); 23 c.b = Mathf.Lerp(boostOverHeatColor.b, boostNormalColor.b, l); 24 c.a = Mathf.Lerp(boostOverHeatColor.a, boostNormalColor.a, l); 25 26 main.startColor = c; 27 } 28 29 if (!boostParticle.isEmitting && currentBoostRemain > 0) 30 { 31 SetBoostParticleActive(true); 32 } 33 }
保存はしていますか?(たまに忘れることがあるので)
再起動とかで治る可能性はあります
(昔パーティクルを触った時は普通色は変わったので)
回答1件
あなたの回答
tips
プレビュー