Membuat Tutorial Actor, Bagian 3 - Loading Library Anda
Sekarang kita memiliki actor proxy , dan set up actor, selanjutnya adalah membuat library yang bisa kita import ke dalam editor. Ini adalah proses sederhana , dan hanya memerlukan beberapa langkah untuk menyelesaikannya. Pertama, kita harus mengkompilasi kode dan library. Langkah berikutnya adalah menjalankan editor. Langkah terakhir adalah dengan menggunakan Library Editor untuk mengimpor Library.
Untuk memulainya adalah dengan cara membuat proyek Visual Studio yang baru dan akan mengekspor library actor . . Untuk membuat proyek Visual Studio yang akan mengkompilasi Delta3D, terdapat dalam tutorial sebelumnya yang terdapat di dalam Delta 3D. Setelah menyelesaikan langkah tersebut, sekarang langkah selanjunya adalah harus menetapkan opsi dalam Visual Studio untuk kirim ke mengkompilasi kode ke dynamic library. Klik kanan pada proyek yang telah di buat buat dan pilih tab "Properties" . Di bawah tab "General", pilih "Configuration Type" item dari menu. Ubah dari "Aplikasi (exe)." Untuk "Dynamic Library (. Dll)".

Sekarang setelah dikonfigurasi dengan benar, saatnya untuk melihat beberapa kode. kita mulai dengan membuat sebuah file bernama TessellationActorLib.h, dan menempatkan kode berikut di dalamnya:
#include
Pertama, kami menyertakan file "dtDAL / actorpluginregistry.h" sehingga kami dapat berasal dari class kami itu. Perlu dicatat bahwa karena kita akan mengekspor library ini, kami menjelaskan DT_PLUGIN_EXPORT sebelum nama class. Setelah itu, kami menyatakan constructor, dan fungsi RegisterActorTypes. Fungsi RegisterActorTypes adalah di mana kita akan mendaftarkan tessellation actor dengan actor factory untuk instancing di editor. Perhatikan bahwa Anda dapat memiliki banyak actor dalam satu library yang Anda inginkan. Library ini diberi nama actor hanya untuk tutorial kita, tapi untuk Anda gunakan, lebih baik untuk nama library sesuatu seperti 'MyProjectActorsLib'. Sekarang saatnya untuk membuat sebuah file yang bernama "TessellationActorLib.cpp" dan masukkan kode berikut di dalamnya:
#include "TessellationActorLib.h" #include "TessellationActorProxy.h" extern "C" DT_PLUGIN_EXPORT dtDAL::ActorPluginRegistry* CreatePluginRegistry() { return new TessellationActorLib; } extern "C" DT_PLUGIN_EXPORT void DestroyPluginRegistry(dtDAL::ActorPluginRegistry *registry) { if(registry) delete registry; } TessellationActorLib::TessellationActorLib() : dtDAL::ActorPluginRegistry("Tessellation Actor Library") { mDescription = "This library exports the tessellation actor"; } void TessellationActorLib::RegisterActorTypes() { dtDAL::ActorType *tessActor = new dtDAL::ActorType("Tesselation", "Awesome Actors", "This actor represents a tesselating plane."); mActorFactory->RegisterType
Ada catatan penting yang perlu diingat. Ketika editor mengimpor sebuah library, itu mem-parsing library untuk dua fungsi yang terpisah untuk memastikan validitasnya. Fungsi-fungsi ini CreatePluginRegistry, dan DestroyPluginRegistry. Karena C + + name mangling, fungsi-fungsi ini harus dinyatakan dengan hubungan C agar editor bisa mengurai dengan benar. Selanjutnya, kita mengatur gambar library di constructor dan nama library untuk konstruktor induk. Dalam fungsi RegisterActorTypes, kita menciptakan tipe baru untuk mewakili actor tessellation kami. Pada constructor 3 parameter, yaitu nama, kategori, dan deskripsi actor. Akhirnya, kami mendaftar dengan jenis actor factory dengan nama kelas melewati proxy, dan sebuah pointer ke jenis actor. Mengkompilasi kode Anda ke sebuah library yang dinamis dan Anda akan berhasil membuat sebuah actor library. Sekarang ada sesuatu yang perlu diketahui tentang ini. Jika Anda pergi ke library impor ke editor, library perlu disimpan dalam direktori yang ada di variabel lingkungan PATH komputer Anda. Jika Anda tidak tahu direktori berada di lingkungan variabel PATH Anda, Anda dapat mengetahui dengan membuka jendela konsol dan bergema PATH. Jika Anda pernah mendapatkan kesalahan "Gagal memuat library: xxx", ini mungkin alasannya. Yang menyatakan, saatnya untuk mengimpor library baru kami ke dalam editor.
Untuk memulai, jalankan editor, pilih konteks proyek Anda dan membuat peta. Untuk informasi lebih lanjut mengenai membuat peta dan memilih konteks proyek, silakan lihat 'Memahami tutorial Editor'. Arahkan ke menu Edit dan pilih Library Peta. Ini akan melaksanakan Editor Library.

Editor Library adalah di mana Anda dapat mengimpor atau menghapus library dinamis dari peta Anda. Klik tombol Import Library. Hal ini akan menjalankan file browser. Arahkan ke direktori di mana Anda menyimpan TesselationActorLibrary dan double klik. Sekarang actor tessellation dapat instanced di editor.
Catatan - jika Anda memiliki masalah loading library Anda atau crash saat runtime, pastikan bahwa Anda telah mengumpulkan library Anda di negara yang sama sebagai editor (runtime untuk runtime dan debug untuk debug). Ada masalah saat Anda mencoba untuk memuat sebuah library yang dinamis di negara-negara yang saling bertentangan.
Sekarang, membuat actor tessellation hanya untuk menguji. Anda harus melihat sesuatu seperti ini:

Setelah Anda memuat peta ini menjadi sebuah aplikasi Delta3D, Anda harus melihat actor tessellation bergerak. Berikut adalah beberapa screen shot:



Jika Anda memiliki masalah loading peta ke dalam scene, silakan lihat tutorial sebelumnya..

0 komentar:
Posting Komentar