LoginSignup
0
1

【Unity】導入・基本チートシート

Last updated at Posted at 2023-12-03

はじめに

こんにちは、@codaponです。

Unityでのゲーム開発する中で、毎回初歩的な部分で躓くことがあると思うので簡単なチートシートを作りました。

環境構築

  • 公式から「UnityHub」をダウンロードする。
    https://unity.com/ja/download

  • テンプレートの選択画面から2Dを選択。

  • エディタのバージョンを選べますが、バージョン番号の後ろにLTSがついてる物であればどれでも良いです。
    image.png

レイアウト調整

初回で起動すると以下の画面が表示されますが、そのままだと使いにくいので調整します。
image.png

ウィンドウ>レイアウト>2x3を選択。
image.png
image.png

プロジェクトとヒエラルキーの概要

プロジェクト
image.png

ヒエラルキー
image.png

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より前に戻すと治る

参考資料

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1