初心者がUnityでゲームを作る Day7 ~ Create with Code1
Day7まとめ
これをやり終わった。
Day7と言いつつ3日かかった。
エンジンがUnityになったよ
学ぶぜ。
チュートリアル中含蓄メモ
class
色々な機能のつめあわせ
MonoBehavior
StartとかUpdateとか入ってるやつ
Transform
変形関連のメソッドが多数格納されている
Public class PlayerController : MonoBehavior
PlayerControllerクラスはMonoBehaviorクラスとイコールですよのコロン
TransformはClassでtransformはオブジェクトのtransformのこと
メソッドの呼び出し
「.」を付けることでメソッドを呼びだすことができる
transform.Translate(x,y,z);
transform.
メソッドを呼びだしてオブジェクトのtransformを操作せよ
Translate(x,y,z)
3次元座標をカッコ内の形に変更する
;
ここで命令はおわりです
Time.deltaTime
前フレームから今フレームまでの間の時間を計算してくれる
Updateでの処理に噛ませることによって、いま何フレームで更新処理が走っていたとしても等間隔になるように調整できる
1秒10フレームの時
Time.deltaTime = 1/10 = 0.1
1秒60フレームの時
Time.deltaTime = 1/60 = 0.0167
「前に進む」処理にdeltaTimeを掛けるようにすれば、10フレーム処理の時も60フレーム処理の時も「deltaTimeあたり進行距離」を使って進行してくれる
new Vector3(x, y, z)
Vector3の値に対してオフセットをしたいな~という時にでてきた
(Vector3の値) + new Vector3(0, 5, -7)
newを抜かすと何ですかこのVector3は知りませんよと言われる
新しいのを一瞬生やしますよ~と言っておかないといけない
Late Update
Update関数の後に実行される
チュートリアルでは移動の処理をUpdateで、カメラの処理をLate Updateでやることでカメラが常になめらかに追従するようにしていた
Updateに全部まとめてしまうとどっちが先になるかランダムなのでガタガタになる
transform.Rotate(Vector3で軸指定,値)
Translateは座標指定するだけだったけど、回転を加える処理の場合は軸を指定して行う
将来やりたいことにカメラとの角度の有機的な変更があるので頭の端っこに置いておこうと思った
↑これやりたい。やり方はどうしているのかな。
あらゆるオブジェクトを角度設定用のGameobjectの子にして、カメラの角度に対応するように回転させてるとか……?
transform.translate.x
特別何も言わなければVector3でtransformを取る
.xとか.yとかいうことで特定の次元の値のみを取り出すことができる
Destroy(gameObject)
transformのように小文字スタートの「gameObject」はスクリプトがアタッチされたゲームオブジェクトのプロパティを参照する
この場合自分自身(アタッチされたGameObject)の破棄
public GameObject[] animalPrefabs;
[]は配列を意味する
格納された順に0,1,2とIndexが降られる
取り出すときはanimalPrefabs[0]などと入力
この場合Element 0を読み出す
size = 格納可能数
publicなら入力した分だけinspectorに空欄が出てくる
class Random
メソッド .Range(最小数値,排他的最大数値)
最小数値以上、排他的(exclusive)最大数値未満の数を返す
intで0,3と入れたら0,1,2を返す
animalPrefabs(配列を持つ変数).Length
リストの長さを返す
0,1,2と3項目ある場合は3を返す
InvokeRepeating(string Method Name,開始までのディレイ, リピート時間)
何度も同じ挙動を繰り返させるメソッド
Updateで毎フレーム処理しなくてもStartで一発呼べば済むのでエコ
自作の関数がメソッドとして扱われている
メソッド = 関数と捉えていいっぽい
クールタイムの実装
ボーナス課題のやつ。他はいいからそれを一番教えてくれやと思った。
色々調べたけど一番簡単に実装してたのはこれだと思う。
経過時間を計測して閾値を超えたらフラグをtrueにするという形式。
ボタン押下時にフラグチェックしてtrueなら発動してフラグをオフに、falseならエラーメッセージ出すなりする。
この記事が気に入ったらサポートをしてみませんか?