はじめに
こんにちは、@codaponです。
Unityでのゲーム開発する中で、毎回初歩的な部分で躓くことがあると思うので簡単なチートシートを作りました。
環境構築
-
公式から「UnityHub」をダウンロードする。
https://unity.com/ja/download -
テンプレートの選択画面から2Dを選択。
レイアウト調整
初回で起動すると以下の画面が表示されますが、そのままだと使いにくいので調整します。
プロジェクトとヒエラルキーの概要
C#構文
基本構文
using UnityEngine; // 脳死
using UnityEngine.UI; // 脳死
public class DummyClass : MonoBehaviour // 覚えるものではないが一生覚えられない
{
// フィールド(要素、変数)
public int a;
private int a;
[SerializeField] int a; // 実質privateだがインスペクターに表示される
public int[] a; // 配列 // インスペクターからぶち込むこともできる
public string[,] a = new string[,]{{"a11", "a12"},{"a21", "a22"}}
public List<int> a = new List<int>(); // リスト
public static const int A // 定数
// 最初に強制実行されるメソッド(コンストラクタではない)
void Awake(){ } // オブジェクトが非活性でも実行される
void Start(){ } // オブジェクトが非活性では実行されない
// メソッド(関数、ファンクション)
public void dummy(int a){ } // 自分で作るメソッドは先頭小文字
// enum
public enum DummyEnum // 滅多に使わないので一生覚えられない
{
A, B, C, D
}
}
キー入力系
void Update()
{
if(Input.GetKeyDown(KeyCode.A)){ }// 1つ
if(Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.S)){ }// 同時押し
}
GameObject操作
public GameObject gameobject
void hoge()
{
gameobject.SetActive(true); // オブジェクト有効化
}
GetComponent
public Sprite spriteDummy;
GetComponent<Button>()
GetComponent<Image>().sprite
GameObject.FindGameObjectWithTag("aaa").GetComponent<Image> // タグで取得
画面遷移
using UnityEngine.SceneManagement;
void ChangeScene(string sceneName) {
SceneManager.LoadScene(sceneName); // 指定したシーンに画面遷移
}
ボタンを押したときに呼ばれるメソッドを登録
void Start()
{
// ボタンを押したときに呼ばれるメソッドを登録
void Start(){
GetComponent<Button>().onClick.AddListener(test);
}
public void test(){
// 呼ばれる
}
}
Amimator系
public Animator anim;
anim = GetComponent<Animator>();
// 追記予定
音系
public AudioSource audioSourceBgm;
public AudioClip soundBgm;
public AudioSource audioSourceSe;
public AudioClip soundSe;
public void test()
{
audioSourceBgm.clip = soundBgm; // BGM
audioSourceBgm.Play();
audioSourceBgm.Stop();
audioSourceSe.PlayOneShot(soundSe); // SE ループさせずに1回だけ音を出す
}
スライダー
private Slider speedSlider;
public void test(){
speedSlider = GetComponent<Slider>();
speedSlider.value = 1;
}
クラス図
自分はクラス図を作る工程を省略することが多いですが、基本的にこの記事のイメージで良いです。
https://note.com/midorigamegame/n/nfe505bcd69ab
Manager → Controller → Group, Parts, Item, Paramater, Status, etc..
セーブデータ作り方
工事中
ビルド設定
工事中
アセット
工事中
エディタをVSCode化
工事中
画像サイズ
Unityは、表示端末の解像度に関係なく、「10ユニット」、「縦に」表示する仕組み、と言いましたが、これはMain Cameraを選択すると、「Size」の所に定義されています。
この値の2倍、5x2=10ユニットが、縦に表示されるサイズとなります。
もっと高解像度にしたい場合は、このSizeを変更してみて下さい。
VS Codeのエディタが緑文字にならなくて何か変
C#のバージョンを2より前に戻すと治る
参考資料