行いたいこと
unityでシリアル通信で受け取ったデータが閾値を超えた時にobjectをy軸は0.5だけ移動してz軸は0.6ずつ閾値を超えるデータを受け取る毎に移動し続ける。また、閾値を下回った時もz軸には0.6ずつデータを受ける毎に移動し続けるといったコードを書きたいです。つまり、データを受け取るごとにz軸には0.6ずつ移動して、そのデータが閾値を超えた時はいくらデータを受け取ってもy軸は0.5だけしか上昇しないといったことを行いたいです。
###現在行えていること
下記のコードでは閾値を超えた時のみz軸方向に常に0.6ずつ移動するといったところまでは行えています
using UnityEngine; public class SerialCube : MonoBehaviour { public SerialHandler serialHandler; public float threshold = 30f; public Vector3 velocity = new Vector3(0f, 0f, 0.6f); void Start() { serialHandler.OnDataReceived += OnDataReceived; } void OnDataReceived(string message) { var data = message.Split( new string[] { "\t" }, System.StringSplitOptions.None); if (data.Length < 2) return; try { var temperature = float.Parse(data[0]); if (temperature > threshold) { transform.localPosition += velocity * Time.deltaTime; } } catch (System.Exception e) { Debug.LogWarning(e.Message); } } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。