== で比較するのであれば、1ミリのずれもなく-90でなくてはなりません。
-90以上開いたら、のように
<=、もしくは >= を使うのが基本ですが、rotationのzはぴったり-90でしょうか?
追記
-90ぴったりにするのが難しいのであれば、なおのこと等値演算子ではなく比較演算子を使うべきです。
ゲームの構造が分からないので、仮に宝箱の蓋は0°から-180°の間で開閉するものとすると、
gameObject.transform.localEulerAngles.z <= -90
が条件になります。
そうすると、
C#
1using System.Collections;
2using System.Collections.Generic;
3using UnityEngine;
4
5public class Rotation : MonoBehaviour
6{
7
8 public GameObject particleObject;
9
10 // Start is called before the first frame update
11 void Start() {
12
13 }
14
15 void Update() {
16 // マイナスに向かって開くので、「-90より小さければ」が条件として入る
17 if (gameObject.transform.localEulerAngles.z <= -90) {
18 Debug.Log("-90より開いている");
19 }
20 }
21}
ちなみに
一度だけのパーティクル表示はフラグ管理で行うことができます。
C#
1using System.Collections;
2using System.Collections.Generic;
3using UnityEngine;
4
5public class Rotation : MonoBehaviour
6{
7
8 public GameObject particleObject;
9
10 // 呼ばれたかどうかのフラグ
11 private bool called = false;
12
13 // Start is called before the first frame update
14 void Start() {
15 // 初期化
16 called = false;
17 }
18
19 void Update() {
20 // calledがfalseなら
21 if (called == false) {
22 // マイナスに向かって開くので、「-90より小さければ」が条件として入る
23 if (gameObject.transform.localEulerAngles.z <= -90) {
24 // -90より小さくなった瞬間、処理してcalled = trueに
25 Debug.Log("一度だけ呼ばれたよ");
26 called = true;
27 }
28 }
29 }
30}
ゲームがどのように動いているのかが提示されていないため、この処理で動く保証はありません。
適宜修正をお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/11 06:29
2021/01/11 07:12