Unity
unity hubでversion install
2022.3.33
turial
SAColliderBuilder
blenderのarchimeshで作った家とか部屋のcollider貼りにつかえる メッシュのコンポーネントにSA Mesh Collider Build(Script)を追加
convex optionは外しておいたほうが良い
細かい部分のコライダーを省略してくる
Rigidbody optionも不要なら外しておいたほうがよい
無駄な処理が減る
unity coding
Scriptのクラス名とファイル名は一致しないといけない
一般的なC#のルールには従ってる
public変数はunity editorからアクセス可能
[SerializeField]つけてprivateでエディタアクセスを許可するのが一般的
directional light
light componentをもったオブジェクトでしかない
component指向
Animatior component
Animator Controllerへの参照をもつController Property
ControllerはStateMachineをもつ
StateMachineはAnimation Parametersの値の応じて変化
Animatino modeに注意。
物理演算とアニメーションを連動させたいならupdate modeをAnimate Physicsに
Prefab
インスタンス化のためのブループリント
Prefabをいじるとすべてのインスタンスに変更がかかる
Prefab編集時はHikerachy WindowがPrefab Modeになる
特定のゲームオブジェクトを大量生成するにはPrefab化が必須
unityではモデルは読み取り専用のPrefabのような挙動をとるが、Prefabではない
Prefab化するにはProject Windows上でフォルダにDrag&Dropするとよい
navigation mesh
windows -> AI -> navmeshから
Chinemachine
シーン内に一つ以上のバーチャルカメラ作成
バーチャルカメラはChinemachine Brain componentによって制御される
デフォルトでMain CameraオブジェクトにCamera componentと同様にChinemachine Brainもアタッチされている
package managerでinstallが必要
GameObject->Chinemachine
postprocessing
package managerでPorstprocessingでinstall
MainCameraにpost process componentをattach
自動的にpost process volume layerも作成される
GlobalPost Profileを作る
tone mapping
bloom
Ambient Occlusion
[RequireComponent(typeof(Rigidbody))]
依存コンポーネントを自動設定便利
triggerEvent
Colliderの一種で物理オブジェクトの通貨をトリガーとしてアクションを起こすための仕組み
Colliderでis Triggerにチェックを入れればトリガーになる
vscode debug問題対応
vscode拡張はMicrosoftのUnity拡張が公式に
short cut
ハンドツール: Q
移動: W
回転: E
スケール: R
焦点合わせ: F
2D game 解像度
解像度設定
カメラ設定
Projection をOrthographic
フォルダ構造
特に公式からコレというのなく各々やってる
アセットストアからのimportはAssets直下にする
default pathからのimport前提になっているものがあるらしくトラブル防止のため
自身のものはAssets/$ProjectNameの中にすべて入れる
code:=a
Assets/$ProjectName
├─Animations
├─Audio
│ ├─BGM
│ └─SE
├─Editor
├─Fonts
├─Materials
├─Textures
├─Models
├─PhysicsMaterials
├─Plugins
├─Prefabs
├─Resources
├─Scenes
├─ScriptableObjects
├─Scripts
│ link.xm
├─Textures
└─Videos
ref
ScriptableObject
トランスフォームをもたずゲームオブジェクトにアタッチできないクラス
データアセットとして利用できる
プロジェクトのアセットとしてデータを保存できる。
[CreateAssetMenu(fileName , menuName , order)]
CreateAssetMenu属性を付与しておくと保存場所を指定できたり、メニューから作成作成できるようになる
敵のパラメータ情報等を保持するのに便利
prefabで多数オブジェクトを生成するときに、そのパラメータをScritpableObjectで参照するとメモリの節約になる
データのコピーではなく、すべてが同じScriptableObjectのインスタンスの参照になるので
unityエディタ上でデータ更新できる
シーン内のインスタンスとして生成されないのでシーンを跨いで存在できる
参照されなければインスタンス化もされない