【Unity C#】キャンディークラッシュ風マッチ3パズルの作り方 #4 タイルの移動制御
このレクチャーでは
タイルの移動制御の処理
を作っていきます
タイルの変数を定義
タイル全体で使う変数を定義していきます
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TileController : MonoBehaviour
{
// タイルの画像リスト
[SerializeField] List<Sprite> matchColors;
// このタイルのカラー
public int ColorType;
// 移動速度
const float MoveSpeed = 3.5f;
// 目標地点
Vector2 targetPosition;
// 目標距離
float targetDistance;
// 物理挙動を管理するコンポーネント
Rigidbody2D rigidbody2d;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
解説
// タイルの画像リスト
[SerializeField] List<Sprite> matchColors;
タイル画像のリストになります
タイル生成時にこのリストの中からランダムで画像を設定します
// このタイルのカラー
public int ColorType;
その画像のタイプをここに保存します、具体的にはランダムで選択した
matchColorsのインデックス番号になります。
// 移動速度
const float MoveSpeed = 3.5f;
こちらは移動や落下時の移動速度になります。
大きいほど早く動きます。
// 目標地点
Vector2 targetPosition;
// 目標距離
float targetDistance;
こちらは今回作っていく移動の関数で使う変数です。
目的位置とそこまでの距離を入れる変数になります 。
// 物理挙動を管理するコンポーネント
Rigidbody2D rigidbody2d;
タイルの制御では、物理挙動のオンオフを何度か使うので
そのコンポーネントを保持しておくための変数になります。
Awake関数を追加
Start関数の上にAwake関数を追加します。
// 生成された時に呼ばれる
void Awake()
{
// このゲームオブジェクトのRigidbody2Dコンポーネントを取得
rigidbody2d = GetComponent<Rigidbody2D>();
}
// Start is called before the first frame update
void Start()
{
}
解説
Awake関数は、コンポーネントが有効になったタイミングで一度だけ呼ばれるUnity標準の関数です。
呼ばれるタイミングがStart関数と似ていますが、Start関数はUpdateが実行される直前に一度だけ呼ばれる関数なので、AwakeはStartより早く呼ばれます。
Awakeでコンポーネントを取得して、Startで初期化する
というのはよくやる方法なので、今回ぜひおぼえておいてもらえると良いかなと思います。
移動先をセットする関数
この記事が参加している募集
この記事が気に入ったらチップで応援してみませんか?