Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Game Development
  2. Unity 2D
Gamedevelopment

Perpaduan 2D Bersama: Slider, Relatif, Spring, dan Geseran Bersama

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called Unity 2D Joints.
Unity 2D Joints: Distance, Hinge, Target, and Fixed Joints

Malay (Melayu) translation by Adjatay Bashroh Aldad (you can also view the original English article)

Final product image
What You'll Be Creating

Dalam tutorial sebelumnya, kami mula melihat bagaimana sendi fizik 2D berfungsi dalam Perpaduan dan cara menggunakannya untuk mencapai kesan yang hebat (tanpa mengorbankan prestasi permainan). Dalam tutorial itu, kita meliputi jarak, engsel, sasaran, dan sambungan tetap.

Hari ini, kami akan meneruskan dengan melihat slider, relatif, musim bunga, dan geseran sendi.

Slider Bersama

Sendiri ini membolehkan objek permainan dikawal oleh fizik badan yang tegar untuk meluncur sepanjang garis di ruang angkasa. Objek boleh bergerak di mana-mana di sepanjang garis sebagai tindak balas kepada perlanggaran, daya, atau oleh gaya motor. Oleh itu, halangan seterusnya anda akan menjadi platform bergerak yang bergerak terus antara dua titik tetap.

Buat GameObject yang kosong, panggilnya MovingPlatform, dan tetapkan Kedudukan objek ke (72.36, 1.57, 0). Seterusnya, anda perlu membuat tiga platform yang berbeza. Pergi ke folder Platform dan seret tiga sprite Platform1, Platform6, dan Platform12 ke dalam MovingPlatform.

Posisi Platform1 seharusnya (0, -1, 0), manakala untuk Platform6 itu (14, -1, 0), dan untuk Platform12 (20.3, -1, 0). Selepas meletakkan sprite, senario anda harus kelihatan seperti ini:

Slider Joint 2D - Initial positioning

Sekarang bahawa anda mempunyai semua aset di tempat, saatnya untuk membuat dan mengkonfigurasi Slider 2D Bersama. Pilih Platform6 dan tambah komponen 2D Bersama Slider. Perpaduan secara automatik akan menambah RigidBody 2D juga. Dayakan Putaran Pembekuan Z. Kini, pilih Platform1 dan tambah RigidBody 2D. Membolehkan pilihan Adakah Rotasi Kinematic dan Freeze Z.

Sekarang, pilih Platform6, keluarkan Komponen Kesan Pelantar 2D dan nyahdayakan opsyen yang Digunakan oleh Pengesan pada komponen Peti Collider 2D.

Bidang yang terdapat dalam komponen Slider Bersama 2D sama dengan yang anda lihat dalam sambungan Hinge, tetapi dengan beberapa perubahan semantik. Kerana sendi slider berurusan secara linear dan bukannya gerakan sudut, Motor Speed ​​diukur dalam unit sesaat. Begitu juga, bukan had sudut, anda boleh menentukan had terjemahan. Had Terjemahan berfungsi dengan cara yang sama seperti had sudut, kecuali mereka menentukan jarak badan tegar boleh dari Titik Anchor Terhubung.

Hidupkan Perlanggaran Aktifkan, kerana anda mahu platform bertabrakan dengan platform yang disambungkan. Seret Platform1 ke Badan Tegar yang Bersambung. Tetapkan Anchor Terhubung ke (-0.082, -0.0646). Dayakan Gunakan Motor dan tetapkan Kelajuan Motor ke -2.

Jika anda menekan Main, anda akan melihat bahawa platform tengah sedang bergerak. Walau bagaimanapun, apabila ia telah mencapai platform yang terdekat, ia berhenti. Untuk membetulkannya, anda perlu menambah skrip MovingPlatform ke Platform6. Seret Platform12 ke Platform A dan Platform1 ke Platform B.

Slider Joint 2D - Script configuration

Tekan Main, dan sahkan semuanya berfungsi seperti yang diharapkan. Sekarang bahawa halangan sudah siap, buat prefab itu dan letakkan dalam folder Halangan.

Bersama Bersama

Bersama 2D Bersama membolehkan dua objek permainan dikawal oleh fizik badan yang teguh untuk mengekalkan kedudukan berdasarkan lokasi masing-masing. Untuk melaksanakan bersama ini, anda akan membuat dua platform. Satu dipasang di ruang angkasa, manakala yang lain akan bergerak di sekelilingnya, mewujudkan halangan bulat.

Buat GameObject yang kosong di Posisi (102.7, 4.2, 0) dan namakannya Relatif. Di dalam folder Aset GameAssets Platform, seret Platform11 ke GameObject Relatif dan tukar namanya menjadi Platform2. Tukar Posisi ke (-.45, -5.97, 0) dan Skala ke (.5, .5, 1). Tambah komponen 2D Rigidbody dan semak harta Is Kinematik. Bahagian pertama dari halangan dibuat, jadi mari sekarang teruskan dan tambahkan platform kedua.

Tambah sprit MetalPlatform (di dalam folder Aset Percuma Sprites) ke GameObject Relatif, namakan Platform, tukar Perintah dalam Lapisan ke 2, dan tetapkan Kedudukan ke (-.37, 1.23, 0). Tambah dua komponen: Rigidbody 2D dan Box Collider 2D. Tukar Saiz Kotak Collider 2D ke (2.32, 0.55).

Sekarang tambah komponen 2D Bersama Relatif ke Platform. Di dalam Badan Tegar Terhubung, anda harus meletakkan Platform2.

Hartanah Max Force menetapkan garis lurus (garis lurus) mengimbangi antara objek yang disatukan—nilai yang tinggi (sehingga 1,000) menggunakan daya tinggi untuk mengekalkan offset. The Max Torque menetapkan pergerakan sudut (putaran) antara objek yang disatukan. Tetapkan kedua-dua nilai kepada 200. Auto Configure Offset harus diperiksa.

Jika anda menjalankan permainan anda, anda akan melihat bahawa tidak ada yang bergerak. Anda perlu melakukan langkah terakhir yang melibatkan menambah skrip RelativeJoint (dalam skrip Scripts) ke GameObject Platform. Main permainan dan uji jika semuanya berfungsi seperti yang diharapkan.

Konfigurasi bersama akhir adalah:

Relative Joint 2D - Final configuration

Sekarang bahawa halangan sudah siap, buat prefab itu dengan meletakkan GameObject dalam folder Halangan.

Spring Bersama

Komponen Spring 2D bersama membolehkan dua objek permainan yang dikawal oleh fizik badan yang teguh untuk dilampirkan bersama seolah-olah pada musim bunga. Musim bunga akan memohon daya tertentu di sepanjang paksi di antara kedua-dua objek, cuba untuk memastikan mereka jarak jauh.

Untuk menggunakan gabungan ini, anda akan mewujudkan jambatan terapung yang terdiri daripada awan; awan akan dilampirkan ke awan besar yang lain menggunakan Spring Spring.

Mulakan dengan membuat GameObject yang kosong. Namakannya Spring dan tetapkan Kedudukannya (120, 10, 0). Tambah sprite Walkaway1 (dalam folder Platform) ke GameObject Spring. Tukar namanya kepada CloudSpring dan Pesanan dalam Lapisan ke 1. Tambahkan 2D Rigidbody dan periksa harta Is Kinematik.

Sekarang, mari tambahkan empat sprite baru. Pilih Platform9 sprite dari folder yang sama dan tambahkan empat daripada mereka ke GameObject Spring. Namakan setiap objek PlatSpring01 ke PlatSpring04.

Setiap PlatSpring mesti diletakkan di Posisi yang betul seperti berikut:

  • PlatSpring01: -7.63, -12.35, 0

  • PlatSpring02: -2.67, -11.16, 0

  • PlatSpring03: 1.88, -12.44, 0

  • PlatSpring04: 6.77, -12.58, 0

Spring Joint 2D - Initial Positioning

Tukar Pesanan dalam Lapisan hingga 4 untuk semua objek PlatSpring. Kini, untuk setiap PlatSpring anda perlu menambah dua komponen: 2D Rigidbody dan 2D Spring Bersama. Untuk komponen Rigidbody 2D, anda hanya perlu menyemak Putaran Pembekuan pada paksi Z.

Apabila anda menambah Spring 2D Bersama, ia mewujudkan secara lalai Badan Terikat Bersambung ke pusat Scene.

Spring Joint 2D - Bad Connection Rigid Body illustration

Itu bukan kesan yang dimaksudkan. Oleh itu, anda harus melampirkan GameObject CloudSpring ke Badan Tegar Bersambung setiap PlatSpring.

Spring Joint 2D - Connection Rigid Body illustration

Apabila anda melakukannya, sambungan talian hijau secara automatik dikemas kini dan diletakkan di dalam CloudSpring.

Anda boleh menukar Anchor Terhubung dan Jarak jika anda mahu. Bagaimanapun, dalam tutorial ini, anda hanya akan menukar Anchor Terhubung.

Untuk setiap PlatSpring, tukar Anchor Terhubung dengan sewajarnya:

  • PlatSpring01: -4.8, 0

  • PlatSpring02: -1.7, 0

  • PlatSpring03: 1.07, -0.11

  • PlatSpring04: 4.13, -0.11

Konfigurasi lengkap PlatSpring01 adalah yang berikut:

Spring Joint 2D - PlatSpring01 Configuration

Main permainan anda dan menguji jika semuanya diletakkan dengan baik dan dikonfigurasikan. Sekarang bahawa halangan sudah siap, buat prefab itu dengan meletakkan GameObject dalam folder Halangan.

Geseran Bersama

Gegaran Bersama 2D menghubungkan benda-benda yang dikendalikan oleh fizik tubuh yang kaku dan mengurangkan kedua-dua halaju linear dan sudut antara objek hingga mencapai sifar (yakni ia memperlambatnya). Untuk melaksanakan Gegaran Bersama 2D, anda akan membuat platform bergerak yang disambungkan ke awan dengan sifat fizikal.

Mulakan dengan membuat GameObject yang kosong. Namakannya FrictionPlatform dan tetapkan Kedudukannya (133, 5, 0). Tambah sprite Platform11 (dalam folder Assets\Sprites) ke FrictionPlatform. Tukar namanya kepada Sokongan dan tetapkan Order dalam Lapisan kepada 1, Kedudukannya kepada (0, 0, 0), dan Skala ke (.25, .25, 1). Anda juga perlu menambah 2D Rigidbody dan menyemak harta Is Kinematik. Sisa hartanah harus ditinggalkan pada mungkir.

Sekarang, tambahkan sprit MetalPlatform ke FrictionPlatform. Tukar Kedudukannya (.31, -8.33, 0), dan Perintah dalam Lapisan ke 3. Dengan MetalPlatform yang dipilih, tambahkan Rigidbody 2D, Box Collider 2D, dan 2D Effector Platform. Saiz Peti Collider 2D perlu diselaraskan kepada (2.35, 0.5) dengan Digunakan oleh Effector pada, manakala di Rigidbody 2D anda mesti menyemak Posisi Beku Y dan Putaran Pembekuan Z. Anda kini harus mempunyai seperti berikut:

Friction Joint 2D - Positioning

Jika anda bermain permainan dan melompat ke atas MetalPlatform, anda akan melihat bahawa tiada apa yang bergerak. Mari kita ubahnya dengan menambah 2D Bersama Geseran ke dalam MetalPlatform. Badan Tegar Terhubung hendaklah diisi oleh Sokongan. Untuk bersama ini, kami akan membiarkan Unity menetapkan koordinat utama dengan membolehkan Auto Configure Connected. Max Force dan Max Torque mestilah 1, manakala Break Force dan Break Torque harus Infinity.

Jalankan permainan anda dan mari kita uji sendi geseran. Sekarang bahawa halangan akhir sudah siap, buatlah prefab itu dan letakkan di folder Halangan.

Kesimpulan

Ini menyimpulkan bahagian tutorial kedua mengenai Perpaduan Bersama 2D. Anda belajar tentang empat sendi, iaitu slider, relatif, musim bunga, dan geseran sendi. Dengan pengetahuan ini bersekutu dengan semua yang anda pelajari di bahagian pertama, anda kini dapat membuat permainan 2D kompleks menggunakan sifat fizikal 2D kompleks.

Jika anda mempunyai sebarang pertanyaan atau komen, seperti biasa, jangan ragu untuk menjatuhkan garis dalam komen.

Advertisement
Advertisement
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.