・キー入力による移動
・背景のスクロール
Debug.Log()とはコンソールウインドウにデバッグ情報(数値の変動や文字列など)を表示するための命令。
・C言語ではprintf()に対応。
・プログラムの動作確認や問題の原因を探す際に使う。
【今回のコード①】
using System.Collections;
using System.Collections.Generic;
using System.Threading;
using UnityEngine;
public class Debug_test : MonoBehaviour
{
int count = 0;
// Start is called before the first frame update
void Start()
{
Debug.Log(“Start”);
}
// Update is called once per frame
void Update()
{
Debug.Log(“Update” + count);
count++;
}
}
なお、今回の追加コードは「Create→C#Script」として新しくスクリプトを作り、Hierarchy上のPlayerにドロップしてから実行した。結果は以下。

プログラミング共通ルール(C,C++、C#)
・丸括弧()
開いたら必ず閉じる。()の数は必ず同じにする。
・中括弧{}
開いたら必ず閉じる。{}の数も必ず同じにする。
・ダブルクォーテーション””
文字列を囲むときは必ずペアで使う。
例:”Hello World”
・セミコロン;
文の終わりにはセミコロンを必ずつける。
ただし、if、else、for、whileなどの制御文そのものには付けず、ブロック{}の中で完結させる。
※エラーを防ぐために、ルールは守る!※
キー入力に応じて 4方向にスライド
【今回のコード②】
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
public float moveSpeed = 5.0f;
// Start is called before the first frame update
void Start()
{
// 初期化処理が必要な場合はここに記述します
}
// Update is called once per frame
void Update()
{
// オブジェクトを移動させる処理
Vector3 move = Vector3.zero;
if (Input.GetKey(KeyCode.UpArrow))
{
move.y += 1;
}
if (Input.GetKey(KeyCode.DownArrow))
{
move.y -= 1;
}
if (Input.GetKey(KeyCode.LeftArrow))
{
move.x -= 1;
}
if (Input.GetKey(KeyCode.RightArrow))
{
move.x += 1;
}
// 位置を更新 (正規化して速度を調整)
transform.position += move.normalized * moveSpeed * Time.deltaTime;
}
}
なお、public float moveSpeed = 5.0f; で速度を設定しているが、InspectorでMoveSpeedを変更すると、スクリプトより優先され、以降Inspector側でしか変更が利かなくなる。
移動方向によってスプライトを切り替える
SpriteRendererはスプライトを表示する部品spriteという
【今回使ったコード③】
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
public float moveSpeed = 5f;
public Sprite spriteFront;
public Sprite spriteBack;
public Sprite spriteLeft;
public Sprite spriteRight;
SpriteRenderer spriteRenderer;
// Start is called before the first frame update
void Start()
{
spriteRenderer = GetComponent<SpriteRenderer>();
// 初期化処理が必要な場合はここに記述します
}
// Update is called once per frame
void Update()
{
// オブジェクトを移動させる処理
Vector3 move = Vector3.zero;
if (Input.GetKey(KeyCode.UpArrow))
{
move.y += 1;
spriteRenderer.sprite = spriteBack;
}
else if (Input.GetKey(KeyCode.DownArrow))
{
move.y -= 1;
spriteRenderer.sprite = spriteFront;
}
else if (Input.GetKey(KeyCode.LeftArrow))
{
move.x -= 1;
spriteRenderer.sprite = spriteLeft;
}
else if (Input.GetKey(KeyCode.RightArrow))
{
move.x += 1;
spriteRenderer.sprite = spriteRight;
}
transform.position += move.normalized * moveSpeed * Time.deltaTime;
}
}
こちらを保存して、Unityに戻ると SpriteFront~などの項目がInspectorに追加される。
こちらにアセットをドラッグ&ドロップする。

背景表示
背景をTileMapで表示。
タイルマップを作るためにまずパレットを作る。
Window ⇒ 2D ⇒Tile Pallete


Hierarchy内で右クリック ⇒ Create ⇒ 2D Object ⇒ Tilemap ⇒ Rectanguler

好きなように配置していく。
残りは後で更新します。
コメント