unityに戻る。チュートリアルを進める。(日本語)
初心者向けのチュートリアル集(このチュートリアルは日本語対応!)

作りたいゲームを作る方法が書いてあるわけではない。
操作方法に慣れる、それから自分がほしい情報を探す。
youtubeに転がっているかも知れない。
UnityエディタはUnity Hub(白いアイコン)経由で立ち上げる、projectを編集するためのエディタ。黒いアイコン。
白いHubが総合案内所のようなもの。
黒いエディターでゲームを作る。
最終的には2Dに行きたい。
そのためにはまず、まずは!小さな目標として。
大きな目標に、早く行きたい気がするのだが。
地球の大きさを感じて、ゆっくり進もう。

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

さぁ、最初のチュートリアル。
これに決めた。
すごいつまらないかもと思いながら、面白いことはこれから!これから!作るのだよ!
と言い聞かせて進む。
スタート。
プロジェクトを作るとき、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 を押しながら移動させることで、他モデルの頂点に吸い付くように移動しますので、楽に調整することが出来ます。
知らなかった。
ウニョウニョと進めていくとこんな記述が。
ユニット、現る。そして物理演算、ロジックの出番か!?
初めてGrapthなるものをいじった。
チュートリアルというものは使ったことがない部品、使ったことがないコマンドに出会えるのが良いところ。
緑色の塊をユニットと呼ぶ。


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を見ると良さそう。
作ろうと思ったらなんでも作れそう。
どの道具を使ったらいいのか、調べて、見つけられるかな?
コメント