Hongliu Academy は、あなたを数歩速くします。
この記事は、私の公式アカウント: Hongliu School で最初に公開されました。
今日、Unity のインタビューの質問を整理して、あなたのお役に立てればと思っています。
インタビュアー: 交差積と点積の意味は何ですか?
答え:
外積:
幾何学的な意味: これら 2 つのベクトルに垂直なベクトルを取得します。このベクトルのモジュラスは、2 つのベクトルを辺とする平行四辺形の面積です。
同じ平面で、結果 > 0 は B が A の反時計回りの方向にあることを意味し、結果 < 0 は B が A の時計回りの方向にあることを意味し、結果 = 0 は B が A と同じ方向にあることを意味します。 .
ドット乗算:
幾何学的な意味: 2 つのベクトル間の角度、およびベクトル a の方向へのベクトル b の射影を特徴付けまたは計算するために使用できます。
2 つのベクトルの内積は、2 つのベクトルのコサイン値であり、-1 から 1 の間です。0 は垂直を意味し、-1 は反対を意味し、1 は同じ方向を意味します。
インタビュアー: 仮想メソッドと抽象メソッドの違いは何ですか?
答え:
- 抽象メソッドにはメソッド名のみがあり、メソッド本体はありません。つまり、メソッドの特定の実装はありません。サブクラスは、特定の機能を実現するために親クラスの抽象メソッドを書き換える必要があります。仮想関数にはメソッド名とメソッド本体がありますが、サブクラスは、それらをオーバーライドすることも、しないこともできます。
- 抽象メソッドは、派生クラスによって強制的にオーバーライドされるメソッドです。そうしないと、派生クラスをインスタンス化できません。
- 抽象メソッドは抽象クラスでのみ宣言できますが、仮想メソッドは宣言できません。
- 派生クラスは抽象クラスの抽象メソッドをオーバーライドする必要がありますが、仮想メソッドはオーバーライドしません。
インタビュアー: Addcomponent の後に呼び出されるライフサイクル関数はどれですか?
答え:
AddComponent によって追加されたスクリプトの場合、その Awake、Start、および OnEnable は Add の現在のフレームで呼び出されます。ここで、Awake、OnEnable、および AddComponent は同じ呼び出しチェーンにあり、Start は現在のフレームで後で呼び出され、Update が呼び出されます。 Add 呼び出しのタイミングに従っていつ呼び出すかを決定します。現在のフレームの Update の前に Add が呼び出された場合、新しいスクリプトの Update も現在のフレームで呼び出されます。それ以外の場合は、次のフレームまで遅延されます。 .
インタビュアー: Unity ではコルーチンはどのように実装されていますか?
答え:
コルーチンはスレッドではなく、非同期で実行されません。コルーチンも、MonoBehaviour の Update 関数と同様に MainThread で実行されます。コルーチンを使用する場合、同期とロックについて心配する必要はありません。
コルーチンは実際には IEnumerator (反復子) です. IEnumerator インターフェイスには Current と MoveNext() の 2 つのメソッドがあります. MoveNext() が true を返す場合にのみ Current にアクセスできます. そうでない場合はエラーが報告されます. iterator メソッドが yield return ステートメントまで実行されると、式式が返され、コード内の現在の位置が保持され、次に iterator 関数が呼び出されたときにその位置から実行が再開されます。
インタビュアー: アトラス パッケージを分類する方法は?
答え:
- ビジネス機能のプレハブに従って、依存関係を見つけ、すべてのプレハブ参照画像を収集します。
- 同じ画像を使用しているプレハブが複数ある場合は、共通フォルダーに入れます。
- アトラスをできるだけコンパクトにし、空白スペースを大きくしすぎないようにし、アトラスのサイズを 2 の n 乗に保つようにしてください。
参考文献
Hongliu Academy の公開アカウントに注目し、毎週月曜日に定期的にプッシュしてください。
私は Dazhi (vx: zzh11235) であり、あなたのテクノロジー パスファインダーです。
行かないで!いいね、集めよう!
よし、行けます。