前提・実現したいこと
Unity初心者でございます。
マウスでキャラクターを動かして遊ぶアクションゲームを作ろうとしているのですが、
動かしている間、足音のSEが再生されるようにする方法がわかりません。
キャラクターが動いているときだけSEが再生するには、どのようにコードを書けばよいのか。
できれば移動速度によって、SEが再生される間隔を短くしたりしたいです。
ご教授いただけると幸いでございます。
何卒よろしくお願いいたします。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class MouseFollow2D : MonoBehaviour 6{ 7 float sound_span; 8 AudioSource StepSound; 9 10 private void Start() 11 { 12 StepSound = GetComponent<AudioSource>(); 13 } 14 15 // X, Y座標の移動可能範囲 16 [System.Serializable] 17 public class Bounds 18 { 19 public float xMin, xMax; 20 } 21 [SerializeField] Bounds bounds; 22 23 // 補間の強さ(0f~1f) 。0なら追従しない。1なら遅れなしに追従する。 24 [SerializeField, Range(0f, 1f)] private float followStrength; 25 26 private void Update() 27 { 28 // マウス位置をスクリーン座標からワールド座標に変換する 29 var targetPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); 30 31 // X, Y座標の範囲を制限する 32 targetPos.x = Mathf.Clamp(targetPos.x, bounds.xMin, bounds.xMax); 33 34 // Y,Z座標を修正する 35 targetPos.y = 0f; 36 targetPos.z = 0f; 37 38 // このスクリプトがアタッチされたゲームオブジェクトを、マウス位置に線形補間で追従させる 39 transform.position = Vector3.Lerp(transform.position, targetPos, followStrength); 40 41 sound_span -= Time.deltaTime; // ???キャラクターの移動を検知して、ここが反応すればうまくいくのかな??? 42 43 if (sound_span <= 0) 44 { 45 StepSound.Play(); //足音を鳴らす 46 sound_span = 0.5f; //タイマーを0.5秒に戻す 47 } 48 49 } 50}
試したこと
いろいろ調べて、SEが再生されるようになったのですが、
現状は一定時間おきにSEが再生されるだけの状態です。
「sound_span -= Time.deltaTime;」の部分を、移動を検知して有効にすればうまくいくのかな?と悶々としております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/12 23:26
2018/12/15 15:44