見出し画像

Unityが分からないから勉強してみた【Unity学習Log #1】

当記事をご覧頂きありがとうございます。
この記事はUnity初心者の私が学んでいく過程で分かったこと・メモしておきたいこと・躓いてしまったこと等をまとめる記録となっています。
記録の意味合いが強いですが、ナンバリングしていますので同じく初心者の方の道しるべの一つになれば幸いです。

教材は?

「Unityの勉強」と一口に言っても、とても漠然としています。
私自身、何から始めるか検討も尽きませんでした。
知り合いに相談したところ、じゃあこれはどうだろうと提案頂いた教材は公式様のサイトです。


Unity Learnサイトの画像引用  (上記埋め込みURL参照)

英語ベースなのがネックですが、教材の中には日本語翻訳しているものもあり、何よりUnity公式様が出しているので内容はとても濃いです。
Google先生の英語翻訳や、英語を翻訳サイトで翻訳する等をしつつ進めていきます。
Unity Essentialsの、初級編?からやっていこうということで始めました。

1つ目:Unity入門チュートリアル

機械翻訳無く、しっかり日本語翻訳して下さっていることにまず感動しました。
また内容も本当にチュートリアルで、
プロジェクトを作りましょう。ではこのプロジェクトとは何でしょうか?
といった風に、一つ一つの内容に説明が入りとても分かりやすかったです。

学んだこと

・シーンって何?
⇒アプリやソフトウェアでいうところの各画面や場面のこと。
「メニュー画面⇒操作画面」は別シーンで1つずつ作成する必要がある。

・シーンビューとゲームビューの違い
⇒通常確認するときのシーンビューと、Playモードを使って起動するゲームビューをしっかり知れた。

・UIのレイアウト変更
⇒Unity操作画面のレイアウトが変更できた!
シーンビューとゲームビューを両立して確認できたり、ヒエラルキーとプロジェクトビューを隣り合って設置できたりと、自分のモニターサイズと相談しながらUI位置を変えられて便利。

・ビジュアルスクリプティングってレゴみたい
⇒スクリプトが打てない方でも直感で操作できるところは、レゴや積み木なイメージ。
パーツを設置して動かしてと、オブジェクト操作しながら動かしていけるため楽しく学べた。

・マテリアルの作り方
⇒VRChatのワールド製作者さんがお話していたマテリアルの作り方が知れた!
色・光・影の入り方と色々設定するものがあり、オブジェに設定して変わるところを見るのが楽しかった。

・空のゲームオブジェクトでヒエラルキー整理
⇒シーン内に入るもの全てがゲームオブジェクトは、とっても基本的で重要なものだった。
座標をしっかり設定すること忘れない!

・Duplicate=複製 (ctrl + D)
⇒コピー→ペーストより楽!
同じものは複製する。
複製したものは複製元と同じ座標にシーンビューで表示されるので、重なり注意!

完成して、動いたところをみると達成感がありました!

完成したゲーム

2つ目:パズル

予めパーツが準備されたCreator Kitと呼ばれるキットを使って、ゲーム作成していくものです。
最終的に「ビルド」までするため、Unity Hubからではなくゲーム単体で起動できるようになるというものでした。

学んだこと

・アセットストアのアセット詳細にあるUnityバージョンを、プロジェクト作成の際に確認してから作成する
⇒Unityバージョンが合わずにプロジェクトにアセットが入れられないことがある。

・シーンビューとヒエラルキーの操作感
⇒ビー玉やパズルのピースを動かして、細かな動かし方を確認。

・ビルドの方法
⇒ゲームファイルを作ってくれる方法を知れた。

躓いたこと

・Ignoreチェックボックスがエラーで表示されず自分の作成したパズルをビルドできなかったこと

チュートリアルの引用図
作成したプロジェクトの画面図

このアセットでは、選んだメニューに合わせてパズルを設定する機能があり、それがこのIgnoreチェックボックスでした。
ただ実際にやってみると、

NullReferenceException: Object reference not set to an instance of an object
UnityEditor.EditorGUILayout.IsChildrenIncluded (UnityEditor.SerializedProperty prop) (at <44a70d1b13cf47e29810e30f45ffae08>:0)
UnityEditor.EditorGUILayout.PropertyField (UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, UnityEngine.GUILayoutOption[] options) (at <44a70d1b13cf47e29810e30f45ffae08>:0)
SceneReferenceEditor.OnInspectorGUI () (at Assets/Creator Kit - Puzzle/Scripts/Editor/SceneReferenceEditor.cs:32)
UnityEditor.UIElements.InspectorElement+<>c__DisplayClass59_0.<CreateIMGUIInspectorFromEditor>b__0 () (at <d2a4066bda954b169ad464ee5a8f02ff>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

のようなエラーが発生してしまい、ビルドしてもパズルの起動ができませんでした。
エラー内容からチェックボックスのオブジェがプロジェクト内に無い?というものだと推測し、Unityのバージョンを変えれば解決すると踏みましたが、

・2021.3.6f1
・2020.3.48f1

を試しても解決しなかったため、アセットが用意してくれているテストゲームをビルドすることで、ビルドの方法を学びました。

エラーの解決方法をご存じの先輩方、よろしければご教授下さい!

3つ目:3Dゲームキット ライト

RPG風の3Dゲームをこのアセットで構築できます。
操作キャラクターや敵等、必要な部品は揃っているためチュートリアルに沿って進めていくと、自分の設定した敵と対峙したりトラップを避けたりできました。

学んだこと

・ヒエラルキー整理の方法
⇒ゲームオブジェクトに「----- Gameplay -----」のような名前をつけてあげると整理しやすい!

・複数シーンの管理
⇒操作中のシーンに名前をつけて、プロジェクトビューにフォルダを作って保存。
ゲームオブジェクト同様にシーンの作成はしやすい。

・ゲームオブジェクトのInspectorでアイコン設定
⇒アイコン設定するとシーンビューに反映されて探しやすくなる。

アイコン設定画面 図ではオレンジ色に設定
シーンビューでオレンジ色のアイコンを確認!

完成画面です。
パーツを置いただけでも、自分が作成して動作確認していくと出来た感が強かったです!

完成プロジェクト

4つ目:John Lemon’s Haunted Jaunt

操作キャラクターを幽霊等から隠れながらゴールに進む、「ステルスゲーム」を作っていきます。
このチュートリアルでC#スクリプトをしっかり組んでいきます。

学んだこと

・C#スクリプトの設定方法
⇒プロジェクトビューでスクリプト作成。
名前をつけて保存し、Inspectorにドラッグ&ドロップすると設定できる。

・スクリプトの説明
⇒スクリプト作成時から記入されている

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

から一部品ごとに説明してくれていたり、チュートリアル上で記入するスクリプト一つごとに解説してくれるため勉強に最適!
これからも復習のために何度もお世話になりそう。

・アニメーションの原理がわかった
⇒どう設定すればアニメーションが設定できるのか、floatやboolのパラメータから説明しつつチュートリアルしてくれるので分かりやすかった。

・照明設定の方法
⇒照明の設定方法についてもいくつもパラメータを触りながら、シーンビューで変わっているところを確認して進められた。

・3Dと2Dの両立
ゲームは3Dだがゲームクリア画面等は2Dで表示する必要があり、その切り替え方を知れた。

・ビルドの方法
⇒二つ目では自分の構築したプロジェクトを出せなかったため、ここでしっかり形になっているところを見れて「できた!」と思えました。

完成画面です。
チュートリアル一つ一つに時間が設定してありますが、ここでは設定時間の倍はかかるぐらい内容が濃かったです。
それでもまだ、スクリプト一つ一つを理解できているとは言いづらいためこれからの教材中復習のため何度も帰ってこようと思いました。

完成ゲーム

以上、Uinty学習Logの初めましてでした。
続けていって、少しでも理解できればと思っています。
                     2023年6月10日 とも可


いいなと思ったら応援しよう!