前提・実現したいこと
超Unity初心者でございます。
いろいろ参考書やネットで調べながら、簡単な2Dのアクションゲームを作ろうとしております。
そこで現在、同じ場所をぐるぐると巡回する障害物を設置しようと思い、移動地点を指定して、次々に移動させることには成功したのですが、横に移動するときと、縦に移動するときとで、移動速度に違いが出てしまいました。
こちら横でも縦でも同じ速度で、次の地点まで移動できるようにするには、どのようにコードを書けばよいのか。
ご教授いただけると幸いでございます。
何卒よろしくお願いいたしますm(_ _)m
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class MoveControll : MonoBehaviour { 6 7 float m_progress = 0f; // 進捗 [0, 1) 8 int m_ix = 0; // 現データインデックス 9 Vector2[] m_data = {new Vector2(0f, 0f), 10 new Vector2(-4f, 0f), 11 new Vector2(-4f, -2f), 12 new Vector2(0f, -2f), 13 new Vector2(0f, 0f)}; 14 15 // Use this for initialization 16 void Start () 17 { 18 transform.position = m_data[m_ix]; 19 } 20 21 // Update is called once per frame 22 void Update () 23 { 24 m_progress += 0.5f * Time.deltaTime; 25 if (m_progress >= 1.0f) 26 { 27 m_progress = 0f; 28 if (++m_ix >= m_data.Length - 1) 29 m_ix = 0; 30 } 31 transform.position = Vector2.Lerp(m_data[m_ix], m_data[m_ix + 1], m_progress); 32 } 33} 34
試したこと
Vector2.MoveTowardsを使うのかなと思ったのですが、等速にはなったものの、途中で次の地点にいきなりワープしたり、エラーを吐いたりして、結局正しい書き方がわかりませんでした(´;ω;`)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/07 13:18