<実現したいこと>
対象のオブジェクトを振動させるクラスつくったよーというサイトのプログラムを改造して、2秒立つと振動が止まるプログラムを書いたのですが、ifが反応していなくて、2秒立っても振動しっぱなし。
<ソースコード>
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5/// <summary> 6/// 振動タイプ 7/// </summary> 8internal enum VibrateType 9{ 10 VERTICAL, 11 HORIZONTAL 12} 13 14/// <summary> 15/// 対象オブジェクトの振動を管理するクラス 16/// </summary> 17public class VibrateController : MonoBehaviour 18{ 19 20 [SerializeField] private VibrateType vibrateType; //振動タイプ 21 [Range(0, 1)] [SerializeField] private float vibrateRange; //振動幅 22 [SerializeField] private float vibrateSpeed; //振動速度 23 float count; 24 private float initPosition; //初期ポジション 25 private float newPosition; //新規ポジション 26 private float minPosition; //ポジションの下限 27 private float maxPosition; //ポジションの上限 28 private bool directionToggle; //振動方向の切り替え用トグル(オフ:値が小さくなる方向へ オン:値が大きくなる方向へ) 29 30 // Use this for initialization 31 void Start() 32 { 33 //初期ポジションの設定を振動タイプ毎に分ける 34 switch (this.vibrateType) 35 { 36 case VibrateType.VERTICAL: 37 this.initPosition = transform.localPosition.y; 38 break; 39 case VibrateType.HORIZONTAL: 40 this.initPosition = transform.localPosition.x; 41 break; 42 } 43 44 this.newPosition = this.initPosition; 45 this.minPosition = this.initPosition - this.vibrateRange; 46 this.maxPosition = this.initPosition + this.vibrateRange; 47 this.directionToggle = false; 48 } 49 50 // Update is called once per frame 51 void Update() 52 { 53 count += Time.deltaTime; 54 Debug.Log(count); 55 //毎フレーム振動を行う 56 if (Time.deltaTime > 2) 57 { 58 59 } 60 else 61 { 62 Vibrate(); 63 } 64 } 65 66 private void Vibrate() 67 { 68 69 //ポジションが振動幅の範囲を超えた場合、振動方向を切り替える 70 if (this.newPosition <= this.minPosition || 71 this.maxPosition <= this.newPosition) 72 { 73 this.directionToggle = !this.directionToggle; 74 } 75 76 //新規ポジションを設定 77 this.newPosition = this.directionToggle ? 78 this.newPosition + (vibrateSpeed * Time.deltaTime) : 79 this.newPosition - (vibrateSpeed * Time.deltaTime); 80 this.newPosition = Mathf.Clamp(this.newPosition, this.minPosition, this.maxPosition); 81 82 //新規ポジションを代入 83 switch (this.vibrateType) 84 { 85 case VibrateType.VERTICAL: 86 this.transform.localPosition = new Vector3(0, this.newPosition, 0); 87 break; 88 case VibrateType.HORIZONTAL: 89 this.transform.localPosition = new Vector3(this.newPosition, 0, 0); 90 break; 91 } 92 } 93}
FPSの設定はどのくらいでしょうか。
countは正常なのでしょうか。
deltaTimeでなくcountがターゲットなのでは
回答1件
あなたの回答
tips
プレビュー