何度か思い出したくなるので、
メモ帳代わりに記事として残しておきます。
こんな感じに↑↑動くぞ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
public GameObject player; //(操作)移動したいオブジェクトを設定
Vector3 movePosition; //移動する距離を格納
public int speed = 5; //1マス毎に移動するスピード
public Vector3 moveY = new Vector3(0, 1, 0); //(1マス毎の)Y軸の移動距離
public Vector3 moveX = new Vector3(1, 0, 0); //(1マス毎の)X軸の移動距離
bool moveButtonJudge; //移動中の判定
void Start()
{
moveButtonJudge = false; //⑤初期設定
}
void Update()
{
//移動場所設定
//キー入力を行うと、moveButtonJudge = true に変わり、一時的にキー入力を無効
if (moveButtonJudge == false){
if (Input.GetKeyDown(“up”))
{
movePosition = player.transform.position + moveY; //movePositionに移動する距離を格納
moveButtonJudge = true; //moveButtonJudge = trueにして、移動を制限する
}
if (Input.GetKeyDown(“down”))
{
movePosition = player.transform.position + -moveY;
moveButtonJudge = true;
}
if (Input.GetKeyDown(“right”))
{
movePosition = player.transform.position + moveX;
moveButtonJudge = true;
}
if (Input.GetKeyDown(“left”))
{
movePosition = player.transform.position + -moveX;
moveButtonJudge = true;
}
}
player.transform.position = Vector3.MoveTowards(player.transform.position, movePosition, speed * Time.deltaTime); //移動開始(playerオブジェクトが, 目的地に移動, 移動速度)
//指定した場所にオブジェクトが移動すると、再度移動が可能になる
if (player.transform.position == movePosition) moveButtonJudge = false;
}
}
・インスペクターから移動させたいオブジェクトをプレイヤーにセットする。
・moveButtonJudgeで、 if (Input.GetKeyDown(“〇〇”))のボタンの有効を決めいる。
目的地の1マスに辿り着くと、再度ボタン(if (Input.GetKeyDown(“〇〇”)))を押すことが可能になるので、1マス1マス毎のマス移動が可能になっているということだ。
メモ帳代わりに記入しているだけなのでお手柔らかに。
「こういう書き方すると良いんだけどな~」と言う方は、「コメント欄によろしくお願いしますっ!」