unityに戻る。チュートリアルを進める。(日本語)

unityに戻る。チュートリアルを進める。(日本語)

初心者向けのチュートリアル集(このチュートリアルは日本語対応!)

Unity初心者向けチュートリアル集 - Unity Learn
Unityを学ぶための入門用チュートリアル集です。PCとUnityがあれば、どなたでもチュートリアルを使ってゲーム開発を体験することができます。 順番に体験する必要はないので、あなたが興味を持ったものを試してみましょう。どれがいいかわからな...

 

作りたいゲームを作る方法が書いてあるわけではない。

操作方法に慣れる、それから自分がほしい情報を探す。

youtubeに転がっているかも知れない。

 

 

UnityエディタはUnity Hub(白いアイコン)経由で立ち上げる、projectを編集するためのエディタ。黒いアイコン。

白いHubが総合案内所のようなもの。

黒いエディターでゲームを作る。

 

最終的には2Dに行きたい。

そのためにはまず、まずは!小さな目標として。

大きな目標に、早く行きたい気がするのだが。

地球の大きさを感じて、ゆっくり進もう。

2D Game Kit - Unity Learn
The Explorer: 2D is a collection of mechanics, tools, systems and assets to hook up gameplay without writing any code. T...

 

横に進む2Dならこんな動画もある。

Unity 2Dアクションの作り方【アニメーション作成】
Unity初心者の方でもわかりやすいように簡単な2Dアクションゲームの作り方を解説しています。今回はアニメーションの作り方です。animatorとanimationは違う物なので注意してください。

 

さぁ、最初のチュートリアル。

これに決めた。

すごいつまらないかもと思いながら、面白いことはこれから!これから!作るのだよ!

と言い聞かせて進む。

スタート。

プロジェクトを作るとき、Unityエディターのヴァージョンをチュートリアルと合わせよう。

2019.4ですね。

新しいプロジェクトを作るとき、下矢印を押すと、unityのヴァージョンを選べます。

2019.4がなかったら、インストールします。

ADDしましょう。(スクショではすでにインストールされています)

 

では、始めよう・・・・

Unityエディタを起動します。

え?エディタを起動するの?

アプリケーションフォルダに行って黒いアイコンをポチります。

Hubが出てきました。

うーん。

結局Hubから作ることにしました。

 

3Dを選びます。

まっさらなエディターが開きました。

進もうー!

右上のlayoutから2by3を選ぶと、編集しやすくなるらしい。(実際に使ってみて、よかったですよ)

projectウィンドウのスライドするボタンを左に移動させるとみやすくなる。

before

after

画面全体はこうなりました。(スクショを撮り忘れたので、完成後の状態ですが。レイアウトはこんな感じ)

 

Cubeを動かしてみよう。

という指示が出てくるが、Cubeの作り方が書いていない。

右クリックをしてCubeを作成します。

今まで気にしていなかったのですが、キューブを作って眺めると、平面に突き刺さっているように見えます。Cubeの位置をinspectorで確認すると、Positionが0,0,0です。キューブの中心の座標を表すのがPositionだということ。

HierarchyのCubeをダブルクリックすると、

Cubeにフォーカスされます。いろんなオブジェクトを作って「あれどこだっけ」となったらこうやって探せそうですね。

Boltのインストールまでやりました。

オブジェクトってなんだっけ

Unity では、シーン内に配置される全ての要素を「GameObject(ゲームオブジェクト)」と呼びます。

シュール。

オブジェクトに色をつける方法は2つ!知らなかったなぁ!

Unity でモデルに色を塗る方法は2つ用意されています。一つはテクスチャを設定する、もうひとつはモデル全体の色を設定することです。 これらの「色」や「反射」といった材質は、Material(材質)ファイルで管理しています。

MaterialファイルはProjectウィンドウから作る。

ObjectはHierarchyウィンドウから作ったが、

MaterialファイルはProjectウィンドウから作る。

知らなかったぜ!

Materialを昔使ったときに、アセットストアで大量にインポートしすぎてどこに何があるかわからなくなった記憶がある。なので、My materialsというフォルダを作ってあげることにする。

壁を作るところまで行った。

V を押しながら移動させることで、他モデルの頂点に吸い付くように移動しますので、楽に調整することが出来ます。

知らなかった。

ウニョウニョと進めていくとこんな記述が。

※Unity 上で編集作業を行う時は必ず、ゲームの再生が終了している状態で行うようにして下さい。ゲームの再生中に行った編集は再生が終わると再生前の状態に戻ってしまいます。
これは、知らずにやっていて軽く泣いたことがある。注意!

ユニット、現る。そして物理演算、ロジックの出番か!?

初めてGrapthなるものをいじった。

チュートリアルというものは使ったことがない部品、使ったことがないコマンドに出会えるのが良いところ。

緑色の塊をユニットと呼ぶ。

スクショはinspectorで出したPlayer Controller.こちらではいけない模様。
HierarchyウィンドウからPlayerオブジェクトを選択して出てくるPlayer Controller.を選ぼう。
うねうねやって進む。
右クリックをしてRigidbody.AddForce ユニットを追加。
動きを作るときは
オブジェクトのComponentから適切なMacroを選択して、
変数Variableを作ってGrapghにユニットを作って・・・という流れになりそう。
先へ進んで。

4.Offset を設定する

ところで、windowからvariablesを作るとあるが。

inspectorからvariablesを作るのと何が違うのかわからない。

inspectorから作ったものは、windowから作ったものと違っていた。

Graphに書かれているプログラムを読解してみる。

Start Eventは、ゲームが開始したときに、つなげたユニットを実行させるトリガー。

Main Cameraのinspectorのvariablesから作ったユニットGet Variableは「(ゲーム開始時の?)Playerの座標を取得する」(Selfと書いてあるがValueはplayer)

もう一つのTransform position(get)は(ゲーム開始時の?)Main Cameraの座標を取得するもの(Main CameraのGraphであるためGet Variableしなくていい?)

(ゲーム開始時の?)PlayerからMainCameraへのベクトル(向きに注意!)をVariableにして、名前をofffsetと名づける。

 

次はUpdate Event。

何かが操作される度に実行されるのかな?

Set Variableの値を取得。

次は上と同じでPlayerの座標を取得。

二つのベクトルを足し合わせると、PlayerからMainCameraへのベクトル(offset)とPlayerのべとるを足し合わせたCameraの位置ベクトルが出てくる。

 

それをMain CameraのTransformとしてsetする。

 

これでいいのだろうか。

 

次行ってみよう!

prefabって、プレハブのことだった!!!???

チュートリアルを真面目にやっていくと気がつくことがある。

プレハブ小屋のプレハブの意味と同じだった。fだからハではないのにずっとプレハブといっていた自分がおかしい。

プレハブ工法は、建築物の一部又は全ての部材をあらかじめ工場で製作し、建築現場で建物として組み立てる建築工法である。(wiki)

ってことは、現代の住宅は、みんなプレハブなんだ・・・・

はい。prefabにすると使いまわせますね。

ん?現代はいろんなものがprefabのような。

当たり判定を有効にするときはBox Coliderのis triggerにチェック

itemのinspectorのColiderを見る。Coliderは衝突の意味。

進めていく。

ん?overrideするときにinspectorのitemを選択?prefabのitemのgraphを作っていました。どうしよう。graphを作ったprefabのitemをhierarchyにドラッグし直しました。

 

UIを作ろう!これは応用できそう。

ふむふむ。Canvasの子要素にtectを置くとな。

作りました。

オブジェクトのタグって、どんな時に使えるのかいまいちわからない。

 

ユニットの流れは。

tagの名前がitemのオブジェクトを見つける。

見つけたオブジェクトの数を数える。

int型をstring型にする。(数値を文字列にデータ型を変える)

Textをセットするユニットに流し込む。

接触したアイテムを数えて引き算しているのかな?と思いきや。Count Itemsというユニットは「残っているアイテムを数える」という。

テキストの中身の文字はSetされた。次に文字をSetする場所。これがScoreLabel??

GetVariableはValueに配置された「ScoreLabel」の場所を取得する。

 

GameControllerオブジェクトのVariablesのValueに指定されている「ScoreLabel」は、Canvasオブジェクトの子要素である「ScoreLabel」のこと。

Text text(set)は「ScoreLabel」に、文字をセットする。という意味だろう。

 

Updateは逐一変化があったら実行する、という意味。

こういう理解でいいのかな?

 

条件をクリアしたといいたい。

この時、GameControllerのgraphをいじることに注意。

Labelをいじるのではない。

 

Branchが条件分岐、ifの役割をしている模様。条件が整ったら、SecActivateが実行されて、Valueがチェックされるようになる(表示されるようになる)。

 

非アクティブにする(hiddenのようなもの?)チェックボタン。

テキストを表示するのだが、LabelのTypeが違うのは、非アクティブにするかどうか、なのだろうか。

で、GetVariableで「何を表示させるか」「何をSetActivateさせるか」を指示する。(WinnerLabelObjectと名付けたVariableのvalueで選択したオブジェクトをActiveにする)

 

CompareTagでtagを判定。

今まで使わなかったEvent ユニット。

CompareTagで指定されたTagを持ったオブジェクトがCollideしたら、何かを実行する、という司令か。

これでチュートリアルは終わり!

 

自分の知らないユニットやら、何やらが出てきたら、unityのreferenceを見ると良さそう。

Component-CompareTag - Unity スクリプトリファレンス
Checks the GameObject's tag against the defined tag.

作ろうと思ったらなんでも作れそう。

どの道具を使ったらいいのか、調べて、見つけられるかな?

 

コメント