Advertisement
  1. Code
  2. Mobile Development

Buat Pokémon GO Style Augmented Reality Game Dengan Vuforia: Bagian 2

by
Read Time:12 minsLanguages:
This post is part of a series called Create a Pokémon GO Style Augmented Reality Game With Vuforia.
Create a Pokémon GO Style Augmented Reality Game With Vuforia
Create a Pokémon GO Style Augmented Reality Game With Vuforia: Image Targets

Indonesian (Bahasa Indonesia) translation by Ilham Saputra (you can also view the original English article)

Dalam posting terakhir dari seri ini, kita belajar bagaimana untuk mengatur Vuforia dan mulai mengembangkan sebuah AR game dari awal, mengadopsi logika yang mirip dengan yang digunakan pada Pokémon GO!

Kami telah memulai pengembangan game Augmented Reality yang disebut Shoot the Cubes. Sekarang saatnya meningkatkan permainan dengan menambahkan interaksi dan membuat pengalaman lebih menarik. Kita akan berkonsentrasi pada kemungkinan kesatuan memberi kita, meninggalkan samping Vuforia spesifik. Pengalaman dengan mesin kesatuan ini tidak wajib.

1. Membuat Kubus Tampak Hidup

Mari mulai bekerja di game kami. Sejauh ini kami telah berhasil membuat adegan Augmented Reality yang bergerak dengan perangkat pengguna. Kami akan meningkatkan aplikasi ini dengan membuat kubus bertelur dan terbang di sekitar, dan dengan membiarkan pemain pencarian dan menghancurkan mereka dengan laser ditembak.

1.1. Memakan Unsur

Kami sudah menetapkan posisi awal _SpawnController menurut perangkat kamera rotasi. Sekarang kita akan membangun area di sekitar titik ini di mana kubus kita akan bertelur. Sekarang kita akan memperbarui SpawnScript untuk membuat _SpawnController menjadi instantiate elemen kubus dengan berbagai ukuran dan posisi acak, relatif terhadap _SpawnController.

Mari kita edit kelas SpawnScript, menambahkan beberapa variabel untuk mengendalikan proses pemijahan.

Kami akan membuat coroutine yang disebut SpawnLoop untuk mengelola proses bertelur. Itu juga akan bertanggung jawab untuk mengatur posisi awal _SpawnController ketika permainan dimulai. Perhatikan bahwa metode Random.insideUnitSphere menyebabkan batu harus dipakai secara acak lokasi di dalam wilayah yang bulat di sekitar _SpawnManager.

Akhirnya, mengedit fungsi Start(). Pastikan untuk menghapus StartCoroutine(ChangePosition() ); Line dan menggantinya dengan panggilan untuk mulai SpawnLoop coroutine.

Sekarang kembali ke Unity Anda harus membuat prefab kubus untuk dipakai oleh skrip.

  • Buat sebuah folder bernama Prefabs di jendela Project.
  • Mengubah elemen Cube skala semua sumbu 1 dan mengubah rotasi ke 0 pada semua sumbu.
  • Tarik Cube ke folder Prefabs.
  • Menghapus kubus dari jendela Hierarchy.
  • Pilih _SpawnController dan tarik cetakan Cube dari Prefabs folder ke bidang M Cube Obj, terletak di daerah SpawnScript Inspektur.


Akhirnya, hapus Sphere yang terletak di dalam _SpawnManager.

Sekarang, jika Anda menekan bermain dalam kesatuan dan dan menjalankan proyek pada perangkat, Anda harus melihat batu hal ikan bertelur.

1.2. Memutar Kubus

Kita perlu menambahkan gerakan ke batu tersebut untuk membuat hal-hal yang lebih menarik. Mari kita memutar batu di sekitar sumbu mereka dan lebih ARCamera. Akan juga keren untuk menambahkan beberapa faktor acak selama gerakan kubus untuk membuat merasa lebih organik.

Seret Cube Prefab dari folder Prefabs ke hierarki.

  • Pada folder Scripts buat C#Script baru yang disebut CubeBehaviorScript.
  • Seret Script ke cetakan Cube dan buka untuk mengedit.

Setiap kubus akan memiliki karakteristik acak. Ukuran, kecepatan rotasi dan arah rotasi akan ditentukan secara acak, menggunakan beberapa referensi yang didefinisikan sebelumnya. Mari kita buat beberapa variabel pengontrol dan menginisialisasi keadaan kubus.

Sekarang saatnya untuk menambahkan beberapa gerakan ke kubus kami. Mari kita membuat berputar keliling sendiri dan di sekitar ARCamera, menggunakan acak kecepatan dan arah yang ditetapkan sebelumnya.

Untuk membuatnya lebih organik, kubus akan skala dari ukuran nol setelah itu melahirkan.

2. Searching and Destroying

Batu tersebut terlalu senang terbang di sekitar seperti itu. Kita harus menghancurkan mereka dengan laser! Mari kita membuat senjata dalam permainan kami dan mulai menembak mereka.

2.1. Shooting a Laser

Ditembak laser harus dihubungkan ke ARCamera dan rotasi nya. Setiap kali pemain 'taps' perangkat layar, laser akan ditembak. Kita akan menggunakan Physics.Raycast kelas untuk memeriksa apakah laser mencapai target dan jika demikian kami akan menghapus beberapa kesehatan dari itu.

  • Membuat objek kosong baru bernama _PlayerController dan objek kosong lain yang disebut _LaserController itu.
  • Tambahkan C# script disebut LaserScript di dalam folder Script dan seret ke _LaserController.

Di dalam LaserScript, kami akan menggunakan LineRenderer untuk menunjukkan sinar laser, menggunakan titik asal yang terhubung ke bagian bawah ARCamera. Untuk mendapatkan titik asal sinar laser—laras senapan virtual—kita akan mendapatkan kamera Transform pada saat laser ditembak dan memindahkannya 10 unit ke bawah.

Pertama, mari kita membuat beberapa variabel untuk mengontrol pengaturan laser dan mendapatkan mLaserLine.

Fungsi bertanggung jawab untuk menembak adalah Fire(). Yang akan dipanggil setiap kali para pemain menekan tombol api. Perhatikan bahwa Camera.main.transform digunakan untuk mendapatkan posisi dan rotasi ARCamera dan bahwa laser diposisikan 10 unit di bawahnya. Ini memposisikan laser di bagian bawah kamera.

Untuk memeriksa apakah targetnya terpukul, kami akan menggunakan Raycast.

Akhirnya, saatnya untuk memeriksa jika tombol api ditekan dan panggilan efek laser ketika tembakan ditembakkan.

Kembali dalam kesatuan kita akan perlu untuk menambahkan komponen LineRenderer ke objek _LaserController.

  • Pilih _LaserController dan di jendela Inspector, klik Add Component. Nama itu "Line Renderer" dan pilih komponen baru.
  • Buat folder baru yang disebut Materials, dan buat materi baru di dalamnya yang disebut Laser.
  • Pilih bahan Laser dan mengubahnya ke setiap warna yang Anda sukai.
  • Pilih _LaserController dan tarik bahan Laser ke bidang Materials komponen LineRenderer.
  • Masih di LineRenderer, di bawah Parameters set Start With ke 1 dan End With ke 0.

Jika Anda menguji permainan sekarang Anda akan melihat laser ditembak dari bagian bawah layar. Jangan ragu untuk menambahkan komponen AudioSource dengan efek suara laser ke _LaserController untuk membuatnya berbumbu.

2.1. Memukul Kubus

Laser kami perlu untuk mencapai target mereka, menerapkan kerusakan dan akhirnya menghancurkan batu. Kita akan perlu untuk menambahkan RigidBody ke batu, menerapkan kekuatan dan merusak mereka.

  • Drag Cube cetakan dari prefabs folder ke tempat manapun di Stage.
  • Select Cube dan pilih Add Component di jendela Inspector. Nama komponen baru "RigidBody" dan pilih.
  • Pada RigidBody set komponen Gravity dan Is Kinematic ke Off.
  • Menerapkan perubahan itu ke prefab.

Sekarang mari kita edit CubeBehavior script untuk membuat fungsi bertanggung jawab untuk menerapkan kerusakan kubus dan satu lagi untuk menghancurkan itu ketika kesehatan turun di bawah 0.

Oke, kubus dapat mengambil sekarang kerusakan dan dihancurkan. Mari kita edit LaserScript untuk menerapkan kerusakan untuk kubus. Yang harus kita lakukan adalah mengubah fungsi Fire() untuk memanggil metode Hit CubeBehavior script.

3. Kesimpulan

Selamat! Game Augmented Reality kami selesai! Ya, permainannya bisa lebih halus, tetapi dasar-dasarnya ada di sana dan pengalaman keseluruhannya cukup menarik. Untuk membuatnya lebih menarik, Anda bisa menambahkan ledakan partikel, seperti yang saya lakukan di video, dan di atas itu, Anda bisa menambahkan sistem skor atau bahkan sistem gelombang dengan pengatur waktu untuk membuatnya lebih menantang. Langkah selanjutnya terserah Anda!

3.1. Apakah berikutnya?

Kami membuat eksperimen AR yang menarik menggunakan Vuforia pada Unity, namun kami masih memiliki banyak fitur keren untuk dibahas. Kami tidak melihat sumber daya Vuforia yang lebih canggih: Target, Smart Terrain, Cloud, dan sebagainya. Pantau terus untuk tutorial selanjutnya, di mana kami akan membahas lebih banyak fitur tersebut, selalu menggunakan pendekatan langkah demi langkah yang sama.

Sampai jumpa lagi!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.