cari
Rumahhujung hadapan webtutorial jsMembuat permainan WebGL dengan Perpaduan 5 dan JavaScript

panduan mudah untuk membuat permainan webgl dengan perpaduan 5 dan javascript

mata teras:

  • Pengeksport WebGL Unity 5 memudahkan proses permainan penerbitan ke web, menggunakan WebGL dan ASM.JS untuk menjadikan grafik 3D interaktif secara langsung dalam penyemak imbas.
  • Tutorial ini membimbing anda bagaimana untuk membuat permainan mudah dalam perpaduan menggunakan JavaScript (UnityScript) yang termasuk menubuhkan projek, mewujudkan watak-watak wira yang melantun pada platform, dan menambah perspektif orang pertama untuk pengalaman permainan yang mendalam.
  • Skrip dalam Perpaduan membolehkan tingkah laku permainan dinamik, seperti penjanaan platform programatik dan kawalan responsif yang digunakan oleh input tetikus untuk mempengaruhi aksara wira dalam permainan.
  • Langkah-langkah utama untuk melengkapkan permainan termasuk menambah antara muka pengguna dengan butang Mula dalam menu permainan, dan mengkonfigurasi tetapan membina untuk mengeksport projek sebagai aplikasi WebGL supaya ia dapat dimainkan dalam pelayar yang dibolehkan WebGL.
  • Tutorial ini berakhir dengan cadangan penambahbaikan selanjutnya seperti menambah skor, lebih banyak jenis platform dan kaedah input tambahan, menunjukkan kepelbagaian perpaduan sebagai alat pembangunan permainan silang platform.

Artikel ini dikaji semula oleh Nilson Jacques Collins, Marc Towler dan Matt Burnett. Terima kasih kepada semua pengulas rakan sebaya SitePoint untuk mendapatkan kandungan SitePoint untuk yang terbaik!

Perpaduan adalah enjin permainan silang platform yang digunakan untuk membangunkan permainan video untuk PC, konsol permainan, peranti mudah alih dan laman web. Versi terkini (Unity 5) dilengkapi dengan pengeksport WebGL, yang bermaksud pemaju dapat dengan mudah menerbitkan permainan mereka ke web. Seperti namanya, pengeksport WebGL menggunakan WebGL (API JavaScript untuk memberikan grafik komputer 3D interaktif) dan ASM.JS (subset JavaScript yang dibangunkan oleh Mozilla, dianggap sebagai "bahasa pemasangan untuk web"). Anda boleh membaca lebih lanjut mengenai ASM.JS dan WebGL untuk Perpaduan dan Unreal Engine di sini.

Dalam tutorial ini, saya akan menunjukkan kepada anda bagaimana untuk memulakan dengan perpaduan. Saya juga akan menunjukkan kepada anda bagaimana untuk membuat permainan mudah dalam perpaduan menggunakan JavaScript dan bagaimana untuk mengeksport permainan anda ke web.

Anda boleh melihat permainan siap di sini (anda memerlukan pelayar desktop yang menyokong WebGL), atau anda boleh memuat turun fail permainan dan fail projek dari repositori GitHub kami.

mari kita mulakan ...

arahan mengenai JavaScript dalam Perpaduan

Apabila kita bercakap tentang JavaScript dalam Perpaduan, kita sebenarnya bercakap tentang UnityScript, yang merupakan jenis dialek JS. Perpaduan itu sendiri sering menyebut JavaScript ini, bagaimanapun, lebih banyak pemerhati sinis percaya bahawa "Perpaduan menggunakan JavaScript" adalah strategi pemasaran. Walau apa pun, kita harus menjelaskan bahawa UnityScript tidak mematuhi sebarang spesifikasi ECMAScript -ia juga tidak cuba melakukannya. Anda boleh mencari gambaran yang baik tentang perbezaan di sini.

Pemasangan Perpaduan

Untuk memulakan tutorial ini, kita perlu menjalankan versi Perpaduan, yang boleh dimuat turun dari sini. Perpaduan mempunyai pemasang untuk Windows dan Mac OS X. Pengguna Linux boleh menjalankan perpaduan melalui wain, tetapi hasil anda mungkin berbeza -beza.

Creating a WebGL Game with Unity 5 and JavaScript

Selepas pemasangan selesai, kita boleh bermula! Mari buka perpaduan dan buat projek 3D baru.

Creating a WebGL Game with Unity 5 and JavaScript Tetapan Projek

Selepas perpaduan pertama dibuka, kita harus mengambil sedikit masa untuk memahami tetingkap utama:

Creating a WebGL Game with Unity 5 and JavaScript Panel paling kiri adalah

sewa
    , yang menggariskan semua elemen dalam adegan semasa. Adegan itu seperti pemandangan permainan, seperti tahap atau menu. Harus ada
  1. kamera utama elemen dan cahaya arah elemen pada masa ini. Tengah ialah pemandangan
  2. , yang menggambarkan kamera dan lampu dalam ruang 3D dalam bentuk ikon.
  3. di sebelah tab
  4. tab
  5. adalah tab yang memaparkan permainan itu sendiri, seperti pemain yang dilihat. Ini direka untuk menguji permainan dalam editor. Di sebelah kanan adalah panel Inspektor
  6. di mana anda boleh mengubah suai tetapan elemen. Mari cuba, klik pada cahaya arah dalam hierarki
  7. . Sekarang kita harus melihat banyak maklumat mengenai cahaya ini dan dapat mematikan bayangannya menggunakan jenis bayangan: tiada bayangan . Di bahagian bawah ialah tetingkap Projek , yang memaparkan paparan fail yang diperlukan untuk membangunkan permainan.
  8. Sekarang kita sudah biasa dengan antara muka Perpaduan, ada satu lagi perkara yang perlu dilakukan sebelum memulakan pembangunan: Simpan adegan semasa.
  9. Fail & gt; Simpan adegan Buka Kotak dialog Simpan
  10. Salah satu cara biasa untuk mengatur fail dalam perpaduan adalah dengan menggunakan subfolder. Oleh itu, tambahkan folder baru yang dinamakan adegan ke folder Aset dan simpan adegan dalam folder ini bernama Level.Unity.

Buat wira Permainan kami akan terdiri daripada satu wira, melompat dari satu platform ke platform yang lain, melompat lebih tinggi dan lebih tinggi. Jika ia merindui satu dan jatuh ke dalam ketiadaan, permainan akan gagal. Oleh itu, mari kita mulakan dengan mencipta wira. Oleh kerana pemain akan menonton permainan dari perspektif orang pertama, penampilan wira tidak penting, kita boleh menggunakan geometri sfera standard. Kelebihan sfera adalah bahawa ia boleh dibuat dalam beberapa langkah dan ia sesuai dengan sifat fizikal yang kita perlukan untuk melompat. Buat dalam hierarki

dan edit sifat berikut menggunakan Inspektor:

mari kita uji apa yang kita lakukan dengan menekan butang main. Kita harus melihat sfera di ruang 3D, yang terletak di hadapan langit.

Agar wira jatuh, ia mesti menambah berat badan. Oleh itu, kita perlu menambah komponen ke sfera dengan mengklik butang yang sepadan di Inspektor dan memilih badan tegar . Dan kerana kita tidak mahu wira berputar, kita akan membekukan wira dalam komponen badan yang tegar dengan menghidupkan kekangan dan memilih semua paksi di berputar baris. Apabila tempat kejadian dimainkan semula, kita sepatutnya dapat menonton kejatuhan wira.

Creating a WebGL Game with Unity 5 and JavaScript

Untuk menyelamatkan wira dari Falls Endless, kami akan membuat kotak rata yang berfungsi sebagai platform. Untuk melakukan ini, kita perlu menambah kiub dan menetapkan nilai skala.y kepada 0.1. Memainkan semula tempat kejadian mengesahkan bahawa wira mendarat dengan selamat di platform, walaupun saya harus mengakui ia tidak kelihatan semula jadi. Jadi bagaimana kita membuat rebound wira? Dengan menambah beberapa bahan fizikal.

Buat Rebound Hero

Pertama, kita perlu membuat bahan fizikal baru untuk bidang untuk menjadikannya elastik. Untuk melakukan ini, buat folder baru yang dipanggil Bahan dalam folder Aset, dan kemudian buat bahan fizikal baru di sini. Mari namakannya Bouncy_Sphere. Nilai yang kita perlukan untuk menyesuaikan diri dalam pemeriksa

adalah:

<code>位置 { X: 0, Y: 2.5, Z: 0 }
缩放 { X: 0.3, Y: 0.3, Z: 0.3 }</code>
Jika kita menambah bahan ini ke

sfera collider , ini akan menjadikan sfera melantun ke atas dan ke bawah, tetapi sentiasa mencapai ketinggian yang sama. Agar sfera melompat lebih tinggi dan lebih tinggi dengan setiap lantunan, kita juga perlu menambah beberapa bahan fizikal ke platform. Untuk melakukan ini, kami membuat bahan lain yang dipanggil Bouncy_platform dan menukar nilainya kepada:

<code>动态摩擦:10
静态摩擦:10
弹性:1
摩擦组合:最大
弹跳组合:最大</code>
Untuk mencapai konsistensi di sini, kita juga harus menamakan semula elemen kiub ke platform dengan mengklik dua kali dalam hierarki

. Apabila kita memulakan permainan sekarang, kita dapat melihat bahawa sfera melompat lebih tinggi dan lebih tinggi setiap kali.

kami juga akan membuat bahan standard baru yang dipanggil Platform untuk memberikan platform warna tertentu. Selepas membuat bahan ini, gunakan #C8FF00 sebagai warna

albedo (albedo adalah label dalam UI Perpaduan), dan seret dan jatuhkan bahan ini ke elemen platform. Ia semestinya kuning sekarang.

tambah perspektif orang pertama

Untuk menambah perspektif orang pertama, kami menyeret dan menjatuhkan kamera (dalam hierarki

) ke sfera. Ini akan menjadikan kamera sebagai anak pahlawan dan menyebabkan kamera mengikuti sfera ketika ia bergerak. Ciri -ciri kamera juga mesti diselaraskan dengan:

<code>动态摩擦:0.9
静态摩擦:0.9
弹性:1
摩擦组合:平均
弹跳组合:相乘</code>
kami juga akan membuat perhatian sebagai elemen anak kedua sfera. Ini akan memberi pemain idea ketinggian lompat semasa wira. Laraskan nilai perhatian kepada:

<code>位置 { X: 0, Y: 1, Z: 0 }
旋转 { X: 90, Y: 0, Z: 0 }
缩放 { X: 2.5, Y: 2.5, Z: 2.5 }
清除标志:纯色
背景:#000
视野:80.3</code>
(langkah -langkah berikutnya akan diterangkan secara ringkas kerana batasan ruang, dan coretan logik dan coretan kod utama akan dikekalkan)

kemahiran Pengawal Pengaturcaraan, Platform Penciptaan Program, Tambah Menu Permainan, Tambah Butang Permainan Mula, menerbitkan projek sebagai permainan penyemak imbas WebGL, dan lain -lain, sila rujuk dokumen asal. Oleh kerana batasan ruang, saya tidak akan mengulanginya di sini. Kuncinya adalah untuk memahami konsep teras sistem skrip Perpaduan, pengurusan objek permainan, enjin fizik dan sistem UI, dan mengamalkannya dalam kombinasi dengan contoh kod dalam tutorial.

FAQ (FAQ)

(bahagian FAQ juga dipermudahkan kerana batasan ruang, mengekalkan soalan teras dan jawapan ringkas)

Bagaimana untuk mengoptimumkan permainan webgl saya untuk prestasi yang lebih baik?

Kurangkan bilangan panggilan cabutan, gunakan bahan dan gabungan gabungan yang kurang, gunakan tahap terperinci (LOD), memampatkan tekstur dan fail audio, dan menggunakan profiler Perpaduan untuk mengenal pasti dan menetapkan kemunculan prestasi.

Bolehkah saya menggunakan WebGL untuk pembangunan permainan mudah alih?

Ya, tetapi permainan WebGL mungkin mengambil lebih banyak sumber daripada aplikasi asli dan memerlukan pengoptimuman yang teliti.

bagaimana untuk debug permainan webgl saya?

Anda boleh debug menggunakan alat penyemak imbas seperti Alat Pemaju Chrome atau Konsol Web Firefox.

Bagaimana untuk menambah ciri multiplayer ke permainan webgl saya?

Pelayan backend diperlukan untuk menguruskan komunikasi antara pemain, dan anda boleh menggunakan sistem rangkaian terbina dalam Unity UNET atau penyelesaian pihak ketiga (seperti foton).

bagaimana membuat wang pada permainan webgl saya?

iklan dalam permainan, pembelian dalam aplikasinya atau model freemium boleh didapati.

Bagaimana untuk memperbaiki grafik permainan webgl saya?

Tekstur berkualiti tinggi, teknik pencahayaan lanjutan dan shaders boleh didapati.

Bagaimana membuat permainan webgl saya bertindak balas terhadap saiz skrin yang berbeza?

Buat antara muka pengguna yang fleksibel dan berskala menggunakan sistem UI Unity, dan gunakan kelas skrin untuk mendapatkan maklumat saiz skrin pemain dan sesuaikan permainan dengan sewajarnya.

Bagaimana untuk menambah kesan bunyi dan muzik ke permainan webgl saya?

Gunakan sistem audio Perpaduan, import fail audio dan main balik kawalan menggunakan kelas audioSource dan audioClip, dan anda juga boleh menggunakan pengadun audio untuk membuat bunyi soundscapes yang kompleks.

Bagaimana untuk melindungi permainan webgl saya daripada menipu?

Kami boleh melaksanakan pengesahan server data permainan, Obfuscating Code JavaScript, dan menggunakan protokol komunikasi yang selamat.

Bagaimana untuk mengemas kini permainan webgl saya selepas menghantar?

Kembali semula permainan dan membuat perubahan dalam perpaduan, dan memuat naik binaan baru ke pelayan.

Harap versi mudah ini membantu anda! Ingatlah bahawa memahami konsep teras dan pengalaman praktikal enjin Perpaduan adalah penting untuk pembangunan permainan WebGL yang berjaya.

Atas ialah kandungan terperinci Membuat permainan WebGL dengan Perpaduan 5 dan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Python vs JavaScript: Bahasa mana yang harus anda pelajari?Python vs JavaScript: Bahasa mana yang harus anda pelajari?May 03, 2025 am 12:10 AM

Memilih Python atau JavaScript harus berdasarkan perkembangan kerjaya, keluk pembelajaran dan ekosistem: 1) Pembangunan Kerjaya: Python sesuai untuk sains data dan pembangunan back-end, sementara JavaScript sesuai untuk pembangunan depan dan penuh. 2) Kurva Pembelajaran: Sintaks Python adalah ringkas dan sesuai untuk pemula; Sintaks JavaScript adalah fleksibel. 3) Ekosistem: Python mempunyai perpustakaan pengkomputeran saintifik yang kaya, dan JavaScript mempunyai rangka kerja front-end yang kuat.

Rangka Kerja JavaScript: Menguasai Pembangunan Web ModenRangka Kerja JavaScript: Menguasai Pembangunan Web ModenMay 02, 2025 am 12:04 AM

Kuasa rangka kerja JavaScript terletak pada pembangunan yang memudahkan, meningkatkan pengalaman pengguna dan prestasi aplikasi. Apabila memilih rangka kerja, pertimbangkan: 1.

Hubungan antara JavaScript, C, dan penyemak imbasHubungan antara JavaScript, C, dan penyemak imbasMay 01, 2025 am 12:06 AM

Pengenalan Saya tahu anda mungkin merasa pelik, apa sebenarnya yang perlu dilakukan oleh JavaScript, C dan penyemak imbas? Mereka seolah -olah tidak berkaitan, tetapi sebenarnya, mereka memainkan peranan yang sangat penting dalam pembangunan web moden. Hari ini kita akan membincangkan hubungan rapat antara ketiga -tiga ini. Melalui artikel ini, anda akan mempelajari bagaimana JavaScript berjalan dalam penyemak imbas, peranan C dalam enjin pelayar, dan bagaimana mereka bekerjasama untuk memacu rendering dan interaksi laman web. Kita semua tahu hubungan antara JavaScript dan penyemak imbas. JavaScript adalah bahasa utama pembangunan front-end. Ia berjalan secara langsung di penyemak imbas, menjadikan laman web jelas dan menarik. Adakah anda pernah tertanya -tanya mengapa Javascr

Aliran node.js dengan typescriptAliran node.js dengan typescriptApr 30, 2025 am 08:22 AM

Node.js cemerlang pada I/O yang cekap, sebahagian besarnya terima kasih kepada aliran. Aliran memproses data secara berperingkat, mengelakkan beban memori-ideal untuk fail besar, tugas rangkaian, dan aplikasi masa nyata. Menggabungkan sungai dengan keselamatan jenis typescript mencipta powe

Python vs JavaScript: Pertimbangan Prestasi dan KecekapanPython vs JavaScript: Pertimbangan Prestasi dan KecekapanApr 30, 2025 am 12:08 AM

Perbezaan prestasi dan kecekapan antara Python dan JavaScript terutamanya dicerminkan dalam: 1) sebagai bahasa yang ditafsirkan, Python berjalan perlahan tetapi mempunyai kecekapan pembangunan yang tinggi dan sesuai untuk pembangunan prototaip pesat; 2) JavaScript adalah terhad kepada benang tunggal dalam penyemak imbas, tetapi I/O multi-threading dan asynchronous boleh digunakan untuk meningkatkan prestasi dalam node.js, dan kedua-duanya mempunyai kelebihan dalam projek sebenar.

Asal JavaScript: Meneroka Bahasa PelaksanaannyaAsal JavaScript: Meneroka Bahasa PelaksanaannyaApr 29, 2025 am 12:51 AM

JavaScript berasal pada tahun 1995 dan dicipta oleh Brandon Ike, dan menyedari bahasa itu menjadi C. 1.C Language menyediakan keupayaan pengaturcaraan prestasi tinggi dan sistem untuk JavaScript. 2. Pengurusan memori JavaScript dan pengoptimuman prestasi bergantung pada bahasa C. 3. Ciri lintas platform bahasa C membantu JavaScript berjalan dengan cekap pada sistem operasi yang berbeza.

Di sebalik tabir: Apa bahasa JavaScript?Di sebalik tabir: Apa bahasa JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript berjalan dalam penyemak imbas dan persekitaran Node.js dan bergantung pada enjin JavaScript untuk menghuraikan dan melaksanakan kod. 1) menjana pokok sintaks abstrak (AST) di peringkat parsing; 2) menukar AST ke bytecode atau kod mesin dalam peringkat penyusunan; 3) Laksanakan kod yang disusun dalam peringkat pelaksanaan.

Masa Depan Python dan JavaScript: Trend dan RamalanMasa Depan Python dan JavaScript: Trend dan RamalanApr 27, 2025 am 12:21 AM

Trend masa depan Python dan JavaScript termasuk: 1. Kedua -duanya akan terus mengembangkan senario aplikasi dalam bidang masing -masing dan membuat lebih banyak penemuan dalam prestasi.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual