0.0、1.0の時に矢印のOpacityを0.5それ以外は1.0に変更したい

値が0.0または1.0の時にRenderOpacityの値を0.5に変更を行い、画像①の矢印のOpacityを下げて、それ以外の場合はOpacityを1.0に保ちたいです。

Invalue==InMinValue、Invalue==InMaxValueと等しければ0.5に、異なっていれば1.0にする処理を組んでいるのですが、欲しい結果が得られません。

PrintStringで値のチェックを行い値が0の状態から再度マイナスのボタンを押すとマイナス側のRenderOpacityが0.5になり、PrintStringで1.0の状態で再度プラスを押してもOpacityに変化はありませんでした。

値は足すときに0.1、引くときは-0.1ずつ行っています。

どなたか対処法などご存じでしょうか。
よろしくお願いいたします。

画像①UI画面
画像②足し引きを行っている関数内部
画像③BranchでRenderOpacityの変更処理をする関数内部
画像④RenderOpacityの変更処理をする関数の外部


floatを「==ノード」で比較することは好ましくありません。恐らくそのブランチは常にFalseになっているものと思われます。
詳細は以下のスレッドを参照してください。

1 Like

お返事とURLありがとうございます
Floatを避けたほうがいい点に関して理解しました
現在ゲージをMaterial側で作成しており、Floatで0.0~1.0を渡す必要があるため一旦NearlyEqualを使用して対応しようと思います。

ほしい結果が得られたため解決とさせていただきます
ありがとうございました!


念のためお伝えしておきますと
「Floatを使わない方が良い」では無く、単に「Floatを使う時は==ノードで比較しない方が良い」というだけの話なのでFloatを使う事自体は問題ないと思います。

2 Likes