チュートリアル覚書メモ


Unity Learn Roll a Ball

概念をつかんできた
 
原則として、3Dの世界では移動するのに物理的な力で動くことが前提。キーを入れたから、ではなくキーを入れた方向に力を変換してオブジェクトに力を伝えるってイメージ。とにかく物理法則で動かすことを意識する。

下に移動も、基本は落下。オブジェクトに物理的属性リジッドボディを与えると、重力も作用する、摩擦も作用する、衝突もある。落下させないためには、重力を無視、等重力という概念が常に存在する

①②

ライトの角度を60に変更、ハイライトに位置が変わっていい感じになった

  • プレイヤーを動かす基本スクリプト
  • Rigidbodyに方向キー力を加えて動かす
  • Y軸方向はいらない(上下方向)
  • 加えた力の加減をpublic 変数"speed"をにしてエディター上から変更できるように
  • publicはエディタ上から任意で入力できる
  • float = 小数点を使う数字に使う
  • Vecto3 = 2DはVector、3は3Dのこと、(X,y,z)で使う
  • APIは公式チュートリアルを見る
  • https://docs.unity3d.com/ja/2019.4/ScriptReference/index.html

  • カメラを回転するプレイヤーの子オブジェクトにするとカメラも回転してしまうのでスクリプトで制御する
  • 変数オフセットにカメラの位置の割り出して与える
  • 考え方 変数オフセット = カメラの現在位置 - プレイヤーの現在位置。これでまずプレイヤーとカメラの位置の差を割り出す。
  • 割り出した差をプレイヤーとカメラを一定距離離れて動くようにスクリプトを書く、カメラの現在地 = プレイヤーの現在位置 + さっき割り出した位置の差。
  • void LateUpdate ←よくわからなかったので後で調べる。すべての設定が終わった最後に処理するってことかな?

  • 空のゲームオブジェクトの座標は0にする
  • 上下左右の壁、ローカル軸を固定するために回転で複製せずにサイズで調整する

  • ランダム回転のスクリプト
  • newの使い方調べる
  • Time.deltaTime
  • Vectorは2D、Vector3は3D
  • 余談 ベクターは英語、ベクトルはドイツ語

  • 衝突判定、何も設定しないとカベやら地面やらもカウントしてしまう
  • コンポーネントリファレンスの開き方、画像矢印の?マークをクリック、ただし英語のページが開く。ドキュメントをダウンロードしてる場合はローカルから読み込む。
  • other.gameObject.SetActive(false); 表示非表示のタグを入れたり消したり
  • Is Trigger オンにすると接触時に物理判定を無視できる?オフだと反射する
  • Colliderの意味 衝突
  • 静的オブジェクトと動的オブジェクトのメモリキャッシュの話。
  • リジッドボディを与えると動的になるのでメモリを食わない?
  • Use Gravity と Kinematicのあたりで分からなくなった。。。
  • エレベーターを使う時に必要?衝突判定は欲しいのだけど、移動はトランスフォームで任意に行いたい、重力はいらない、そんな時にKinematicを使う?

  • インクリメント 変数の値を1増やす演算
  • テキストオブジェクトは必ずCanvasの子にならないといけない
  • UI要素を使う時は using UnityEngine.UI を記述する
  • 同じスクリプトはまとめる、void でまとめてた
  • voidの使い方がまったくわからないので調べる