C#

FPSSampleのアニメーションの実装を読む(後編)

前回の FPSSampleのアニメーションの実装を読む(前編) - siunのメモ 基本的に大まかな流れはここ読めばわかる FPSSample/Animation.md at master · Unity-Technologies/FPSSample · GitHub 三人称視点の実装 すべてPlayableAPIを使って実装してる AnimatorCo…

UnityのDrawLineとDrawRayのメモ

1. DrawLineは2点を結ぶ線 点Aと点Bがある時,その2つを結ぶ線を引きたい時使う 2. DrawRayは1点と1距離から作る線 点Aがある時,そこからある方向へ,ある長さの線を引きたい時使う*1 3. メモ DrawRayは内部でDrawLineを使っている UnityCsReference/Gizmos…

C#の構造体は参照渡しで代入するのが一番速い

C#

目次 newするよりも値を代入するほうが速い 返り値にすると一番遅い 1. newするよりも値を代入するほうが速い gist.github.com 100万回呼んだ場合 代入の方が速い 2. 返り値にすると一番遅い gist.github.com 100万回呼んだ場合 Aとあまり差がないように見え…

FPSSampleのアニメーションの実装を読む(前編)

1. はじめに UnityのAnimatorControllerは,ステートの状態が多くなると管理しづらくなる(矢印だらけになる)という問題がある. そこでUnity公式のサンプルではどのようにアニメーションを実装しているのか知るためソースを読んだ. github.com 2. 前知識 ま…

ERROR You have missing MonoBehaviours on your gameobjects!が出たときの原因

上記のエラーが出る時は、PhotonのRPCで同期したGameObjectのコンポーネントに、Missingなスクリプトが張り付いている可能性がある。 これを削除すればエラーは消える。

GameObjectのスクリプトは、GameObjectが非アクティブでも呼べる

public class Main : MonoBehaviour { void Start() { _target.Say(); } [SerializeField] private Target _target; } public class Target : MonoBehaviour { public void Say() { Debug.Log("I'm Target!"); } } その他 GameObjectが最初から非アクティブ…

UnityのGetComponentはAwake()で行うこと

いいたい事 public class Bar : MonoBehaviour { void Start() { // ダメ _view = GetComponent<BarView>(); } private BarView _view; } public class Bar : MonoBehaviour { void Awake() { // 良い _view = GetComponent<BarView>(); } private BarView _view; } なんでStar</barview></barview>…

UnityのAwake()とStart()の違い

Awake Start

C#では継承すると、親のコンストラクタは必ず呼ばれる

C#

(2022/2/25更新) 覚えること 親のコンストラクタは必ず呼ばれる 0. 何も書かない場合 デフォルトコンストラクタが呼ばれる public class Base { } public class Sub : Base { public Sub() { Debug.Log("Sub()"); } } public class Main : MonoBehaviour { v…

C#ではオーバーロードしたコンストラクタだけが呼ばれる

C#

覚えること オーバーロードしたコンストラクタだけが呼ばれる サンプルコード1 オーバーロードしたコンストラクタだけが呼ばれる。引数なしコンストラクタは自動で呼ばれない。(継承の場合と違うので注意) public class Test { public Test() { Debug.Log(1)…

UnityのStart()の継承、オーバーライドのメモ

2021/5/1追記 目次 1, overrideをつけなくても、Start()は自動的にオーバーライドされる 2, 子クラスでStart()が定義されてなければ、親のStart()が呼ばれる 3, base.Start()で親のStart()を呼べる。ただしprotectedかpublicをつけなければならない Case1 1,…