harunatu
(Harunatu)
1
値が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の変更処理をする関数の外部
DROSS_JP
(DROSS_JP)
2
floatを「==ノード」で比較することは好ましくありません。恐らくそのブランチは常にFalseになっているものと思われます。
詳細は以下のスレッドを参照してください。
1 Like
harunatu
(Harunatu)
3
お返事とURLありがとうございます
Floatを避けたほうがいい点に関して理解しました
現在ゲージをMaterial側で作成しており、Floatで0.0~1.0を渡す必要があるため一旦NearlyEqualを使用して対応しようと思います。
ほしい結果が得られたため解決とさせていただきます
ありがとうございました!
DROSS_JP
(DROSS_JP)
4
念のためお伝えしておきますと
「Floatを使わない方が良い」では無く、単に「Floatを使う時は==ノードで比較しない方が良い」というだけの話なのでFloatを使う事自体は問題ないと思います。
2 Likes