『Unity 3 Dゲーム開発』を試読して感銘を受けた

2380 ワード

「Unity 3 Dゲーム開発」という木を読んでみると、詳しく書かれているような気がします.登録方法も紹介されています(私が以前自分で登録したときは、この上で工夫していませんでした)、初心者が素早くUnity 3 Dをマスターするのにぴったりです.
Unity 3 Dは強力なゲームエンジンを提供しており、その最大の利点はマルチプラットフォーム、特に現在人気のあるモバイルプラットフォームiOSとAndroidであり、これは多くの優れたゲームエンジンが備えていないことです.それ以外に、それはまた1つのとても強大な可視化の開発の編集環境を提供して、多くのゲームの機能の実現はすべてコードを書く必要がなくて、ゲームを開発してとても便利です.
本の第3章では,GUIクラスとGUILayoutの違いを紹介し,GUIによるコントロールは適応調整できず,GUILayoutはより柔軟であると述べた.しかし、私の既存のUnity 3 Dプログラミングの経験から、私は少し異なる見方を持っています.もし1つの比較的簡単なユーザーインタフェースの小さな例から見れば、確かにそうですが、複雑なインタフェースを行うと、状況は必ずしもそうではないかもしれません.インタフェースに装備リストのような複雑なレイアウトが存在する場合、GUILayoutのBeginArea()とEndArea()関数を使用してレイアウトのネストを行う必要があります.たとえば、次のようにします.
 
BeginArea(new Rect(x, y, w, h)...);
...
BeginVertical(new Rect(x, y, w, h));
BeginArea(new Rect(x, y, w, h)...);
...
EndArea();
...
EndVertical();
EndArea();
 
 
GUILayoutは自動的に調整されるため、複雑な交差のレイアウトでは予想できない偏差が発生することがよくありますが、問題の所在を見つけるのは難しいです.また,BeginArea()自体もRectパラメータを入力して絶対的な位置決めを行う必要があり,これは依然として異なる解像度に対して位置を計算する必要があるため,GUIクラスのモードから完全に逸脱していない.
GUIは柔軟ではないように見えますが、その絶対的な位置決め方式はHTMLページの位置決め方式によく似ており、直感的で信頼性があります.実は要点を把握してGUIを使うだけです.BeginGroup()は,固定座標に従ってインタフェース全体をいくつかのブロックに分割し,各ブロックでそれぞれ局所的なレイアウトを行い,使い勝手もよい.コントロールの幅と高さについては、テクスチャマップTextureの幅と高さのプロパティに合わせて設定することができます.画像のサイズを任意に変更したり、サイズが一致しないという問題はありません.また、GUILayoutはインタフェースに大量のMarginが存在するレイアウトには苦労しますが、これらのMarginをどのように実現するかを考えなければなりません.GUIは1つまたは複数のオフセット値を設定するだけでいいです.そのため,実用的な観点から,GUIとGUILayoutの2つのモードを混在させることが現実的である可能性がある.もちろん、仁者見仁、智者見智、あなたが使ったら違う見方があるかもしれません.
第4章では、Unityがサポートする3つのスクリプト言語を紹介しました.Booを習ったことはありませんが、Python言語の表現力は強いです.Booが似ている以上、いい選択だと思いますが、この言語ができる人は少ないのではないでしょうか.受け入れにくいです.JavaScriptも非常に良いスクリプト言語で、歴史的な理由で設計が悪いところもありますが、膨大なユーザー群があり、言語の表現も強いので、それを選ぶのは間違いないはずです.C#については、パフォーマンスにメリットがあるはずですが、文法と実装が細かすぎます(Int 16、Int 32、Int 64を覚えていますか?)使用するのは煩雑です(私はすでに絶えず転換することに飽きて、あなたは?)実はゲームのシナリオとしてはあまり向いていません.ゲームの性能は主にエンジンそのものと実現したゲームロジックによって決まるので、ゲームスクリプト自体の性能ではないので、JavaScriptを選ぶのは間違いないと思います!
Unityスクリプトのライフサイクルは、ライフサイクルの異なる段階と役割を表すいくつかの既定の関数を実装して完全にします.これらの関数は「コールバック」関数のように見えますが、実際には最初に「呼び出し」したことはありません.さらに、設計モードの「ポリシーモード」に合致し、各スクリプトはそれぞれ異なる「ポリシー」を持つ実行体です.Start()とOnDestroy()は、スクリプトの作成と破棄時に一度実行されます.一方、OnGUI()、Update()、FixedUpdate()関数は、ゲームの各フレームの異なるコンテンツのリフレッシュをそれぞれの方法で繰り返し実行するゲームメインループである.
要するに、Unity 3 Dは非常に優秀なビジネスゲームエンジンであり、その出現は私たちに新しい視野をもたらし、ゲームソフトウェアの開発をますます効率的な方向に推進している.