Library)を使わないのですかなぜGodotは例外処理を使わないのですか?GodotがRTTI(実行時型情報)を強制しないのはなぜですか?GodotがユーザーにDoD(データ指向設計)の実装を強制しないのはなぜですか?Godotの開発をサポートしたり、貢献したりするにはどうすればいいですか?誰がGodotで働いていますか。Cの例¶はじめに¶このチュートリアルでは、GDNativeモジュールの作成に最低限必要なものを紹介します。これがGDNativeの世界への出発点になるはずです。このチュートリアルの内容を理解することは、この後のすべてを理解するのに役立ちます。ダウンロードできます。このサンプルプロジェクトには、コンパイルを少し簡単にするSConstructファイルも含まれていますが、このチュートリアルでは、プロセスを理解するために手動で作業を行います。インターフェースを利用して、Godotに追加する複数のタイプの要素を作成できます。モジュールの作成について見ていきます。++でロジックを作成できます。このGDScriptに相当するCを作成します。data今後のチュートリアルでは、他のタイプのGDNativeモジュールに焦点を当て、各モジュールをいつどのように使用するかを説明します。始める前に、いくつかのものが必要です:ターゲットバージョンのGodot実行可能ファイル。``clang``をインストールします。StoreからXcodeをインストールできます。2015以降またはMinGW-w64を使用できます。これらはGDNative用に公開されているGodotのパブリックAPIのCヘッダーです。次に行う作業については、このGDNativeサンプルプロジェクト専用のフォルダーを作成し、そのフォルダー内でターミナルを開いて実行することをお勧めします。https://github.com/GodotNativeTools/godot_headersこれにより、必要なファイルがそのフォルダにダウンロードされます。追加することもできます。リポジトリにはさまざまなブランチがあります。Godotが進化するにつれて、GDNativeも進化します。)に一致するヘッダーに対応させたGDNativeモジュールを構築する必要があります。古いバージョンのGodotヘッダーに対応して構築されたGDNativeモジュールは、新しいバージョンのエンジンで動作する可能性がありますが、その逆はできません。ブランチと一致しているため、最新の開発ビルドで動作するGDNativeクラスと構造体の定義が含まれています。tags``を含む)を確認してください。タグをチェックアウトします。クローンリポジトリでは、次のことができます。)にフォールバックできます。チェックアウトできます。私たちのCソース¶メインコードを書くことから始めましょう。最終的には、下の図の各行と同様なファイル構造を作成します。いう新しいプロジェクトを作成します。ファイルが作成されます。サブフォルダーを手動で作成します。ファイルに何が含まれているかを見てみましょう。ファイルを作成しています。大きなプロジェクトの作成を開始したら、プロジェクトを複数のファイルに分割することをお勧めします。それはこのチュートリアルの範囲外です。ソースコードを少しずつ見ていきますので、以下のすべての部分を1つの大きなファイルにまとめて行く必要があります。各セクションの説明は、それを追加するときに行います。API構造体ヘッダーと、文字列操作のために使用する標準ヘッダーが含まれています。次に、2つの異なる構造体への2つのポインターを定義します。GDNativeは、メインのGodot実行可能ファイルにコールバックするための機能の、大規模なコレクションをサポートしています。モジュールがこれらの関数にアクセスできるようにするため、GDNativeはこれらすべての関数へのポインターを含む構造体をアプリケーションに提供します。この実装をモジュール化し、簡単に拡張できるようにするため、コア関数は「コア」API構造体から直接使用できますが、追加の関数には独自の「GDNative構造体」があり、拡張機能からアクセスできます。この例では、これらの拡張機能の1つにアクセスして、NativeScriptに特に必要な関数にアクセスします。NativeScriptは、Godotの他のスクリプトと同様に動作します。他のスクリプトシステムよりも冗長に多くのことを指定する必要があります。NativeScriptインスタンスが作成されると、ライブラリ指定のコンストラクタが呼び出されます。そのインスタンスが破棄されると、指定されたデストラクタが実行されます。**p_args);これらは、オブジェクトに実装する関数の前方宣言です。コンストラクタとデストラクタが必要です。呼ばれる単一のメソッドがあります。次は、動的ライブラリがロードされたときにGodotが呼び出す最初のエントリポイントです。いうプレフィックスが付いており(後から変更できます)名前が後に続きます。動的ライブラリを初期化する関数です。Godotは、API構造体へのポインターが、役に立つと思われるさまざまな情報を含む構造体へのポインターを提供します。追加のAPI構造体については、拡張機能配列をループ処理し、拡張機能の種類を確認する必要があります。Godotは、オブジェクトがライブラリを使用しなくなったときにライブラリをアンロードします。ここで、必要なクリーンアップ処理を実行できます。この例では、単にAPIポインタをクリアします。この関数は、GDNativeライブラリを読み込む処理の一部としてGodotによって呼び出され、エンジンに対して使用可能なオブジェクトを返します。呼び出すことで、どのクラスが実装されているかをエンジンに伝えます。ここでの最初のパラメーターは、エンジンから与えられたハンドルポインターです。2番目はオブジェクトクラスの名前です。3番目は、「継承」するGodotのオブジェクトのタイプです。これは真の継承ではありませんが、十分に近いものです。最後に、4番目と5番目のパラメーターは、コンストラクターとデストラクターの説明です。