Gamerch
あかさ

関数その2

最終更新日時 :
1人が閲覧中
作成者: ユーザー98083
最終更新者: ユーザー98083

移動する

コルーチンの中では移動のプログラムを書いても通常1フレームしか進まない

whileを使って繰り返すことでちゃんと動くようになる。

プログラムを呼び出すときは

StartCoroutine(プログラム名());と書く

もしくは yield return プログラム名();と書く。

StartCoroutine(プログラム名());の時は下のプログラムが待たずに実行されるが、yield returnの時は下のプログラムは終わるまで待ってくれる。


移動する

移動のプログラムと名前を変えないとエラーになる。

コルーチン用のプログラムと通常の関数は使い方が違うが、名前と引数しか見ていない。

別の名前に変える必要がある。


public static IEnumerator 移動する(GameObject obj, Vector3 追加座標, float 速度)

{

RectTransform rect = obj.GetComponent<RectTransform>();


if (rect != null)

{

Vector3 start = rect.anchoredPosition;

Vector3 target = start + 追加座標;


while (Vector3.Distance(rect.anchoredPosition, target) > 0.01f)

{

rect.anchoredPosition = Vector3.MoveTowards(

rect.anchoredPosition,

target,

速度 * Time.deltaTime

);


yield return null;

}


yield break;

}



Vector3 start3 = obj.transform.position;

Vector3 target3 = start3 + 追加座標;


while (Vector3.Distance(obj.transform.position, target3) > 0.01f)

{

obj.transform.position = Vector3.MoveTowards(

obj.transform.position,

target3,

速度 * Time.deltaTime

);


yield return null;

}

}

コメント (関数その2)
  • 総コメント数0
この記事を作った人
やり込み度

Wikiにゲームが紐づいていません

編集者紹介

未登録

注目記事
ページトップへ