読者です 読者をやめる 読者になる 読者になる

unity study

Unityでサクッとモックを作れるようになることを目指して、基本的なテクニックを抑えていく過程を残すブログのつもりだったけど、今はただ自分のトラブルシューティングメモになってるブログ

2D Loguelike の続き

03.Creating the Tile Prefabs

単純作業。
先にどういうゲーム作るか考えた時点で、タグとかレイヤーとかを上手く定義しておくといいんだろうな。
何となくで置いていって、後から定義して直すとかやりがちだし。

04.Writing the Board Manager

へぇ、C#ってこういう書き方できるのか。

using Random = UnityEngine.Random;

あと、敵の配置数を (int)Mathf.Log(level, 2f) としてるけど、僕はどうにも数学弱いのでこういう発想がパッと出てこないのが残念。
まぁイディオムとして覚えとく、ぐらいしかできんかな。
しかしなんだな、コード書いてるところはビデオチュートリアルだとかったるいな。

05.Writing the Game Manager

BoardManagerのInspectorで複数のプレハブをセットしていく時に、ちゃんとLockボタン押しておかないと、フォーカスがプレハブの方に移っちゃうよ。
地味にこの機能、うっかり忘れてたりする。
スクリプトの項なんざ見なくてもいいかな、と思ったりしたけど、やっぱりこういう細かなTipsってあるもんだ。

06.Moving Object Script

ちょっと気になったこと。

protected abstract void OnCanMove <T> (T component)
    where T : Component;

って

protected abstract void OnCanMove (Component component)

と同義なんだろうか?

移動開始位置と終了位置のLinecastで当たり判定取る際に、boxColliderを無効化してるのは何故なんだろう。
と思ったけど、ああ、自分自身と当たっちゃうからか。

07.Creating Destructible Walls

へぇ、複数のプレハブに一括でAddComponentとかできるんだ。

08.Player Animator Controller

AnimatorのTransitionの項目は、4.6と5では違うんだなぁ。
4.6だとTransitionsを追加した際にデフォでConditionsにExitTimeとかいう項目が設定されてるけど、これはどうやら時間経過での遷移みたい。
ちなみに同秒数のExitTimeで遷移する状態が2本あったらどうなるか試したけど、ランダムに遷移したりせず最後に定義したもの(?)にだけ遷移するようになった。

09.Writing the Player Script

適切にレイヤー指定しとくと、当たり判定時に何から優先的に判定するか、とかやるのに都合よさそう。

10.Writing the Enemy Script

0比較じゃなくてflaot.Epsilonと比較するのは何故なんだろう。
float使う場合の流儀なんだろうか。

11.Enemy Animator Controller

特になし。

12.Adding UI & Level Transitions

uGUIをちょっと触った感じでは、NGUIよりレイアウトとかがやりやすそうな気はする。

13.Audio and Sound Manager

C#は params で可変長引数を定義できる。
ピッチをプラマイ5%変動させるのは、同じ効果音を連続して鳴らす時の単調さを軽減させるものらしい。

AudioClipを2つ登録するにあたり、別々のシンボルにするより配列にした方が楽じゃね?とか思ったんだけど
Wallプレハブを8つまとめて選択して、一括でAudioClipを紐付ける操作は配列だとできないんだな。

14.Adding Mobile Controls

特になし。


う〜ん、長かったけどようやく全部終わった。
しかしビデオチュートリアルはやっぱりかったるいな。
英語だと、早くて何言ってんだかよく分からんし。
内容が簡単だから詰まることはなかったけど、学習効率考えると英語のビデオチュートリアルはいまいちかなぁ。
と言っても、日本語のものってあんま無さそうだけど。

てか、ある程度のことは分かってるから、AssetStoreで完成プロジェクト落としてきてソース読む方が勉強になるかな。