Membuat sebuah NPC
Pelajari cara membuat NPC dari Karakter ZEPETO.
Terapkan skrip contoh yang disediakan untuk setiap fitur untuk menambahkan NPC pilihan Anda ke Dunia Anda.

Buat NPC menggunakan ID ZEPETO.

- Penampilan NPC dan barang yang dikenakan akan sama dengan ID ZEPETO yang dimasukkan.
- Disarankan untuk menyiapkan karakter ZEPETO dengan penampilan tertentu sebelum membuat NPC.


- Terapkan kode pembuatan karakter ZEPETO di Scene Anda secara default.
📘 Silakan merujuk ke panduan berikut. [Buat Karakter ZEPETO]

- Buat Hierarki > Buat Objek Kosong dan ganti namanya menjadi NPC.
- Sebuah objek untuk menyimpan lokasi di mana NPC akan dibuat.
- Atur Posisi, Rotasi.


1) Buat Proyek > Buat > ZEPETO > TypeScript dan ganti namanya menjadi NPCCreator.
2) Tulis skrip contoh seperti di bawah ini.

Alur skrip adalah sebagai berikut:
- Start()
- Buat NPC di lokasi objek NPC menggunakan fungsi ZepetoCharacterCreator.CreateByZepetoId() dan simpan di _npc.

3) Setelah Anda selesai menulis skrip, tambahkan skrip ke objek NPC.
4) Tetapkan Zepeto Id di inspector.
- Zepeto Id : ID ZEPETO dari NPC.

5) Tekan tombol play untuk mengeksekusi dan NPC akan dibuat.
6) Tambahkan objek lokasi NPC dengan cara yang sama, dan tambahkan skrip NPC untuk membuat beberapa NPC dengan mudah.


Anda dapat memberi label pada NPC Anda dengan label nama untuk membedakannya dari pemain.


1) Buat Hierarki > UI > Kanvas dan ganti namanya menjadi PrefNameTagCanvas.
- Atur Mode Render ke World Space.

2) Buat Hierarki > UI > Teks sebagai anak dari PrefNameTagCanvas dan ganti namanya menjadi NameTagText.
- Teks untuk mewakili nama.
- Tambahkan komponen Content Size Fitter untuk membuat teks dengan ukuran yang tepat.

3) Setelah selesai, seret ke jendela Proyek untuk menjadikannya Prefab, dan kemudian hapus PrefNameTagCanvas yang masih ada di penyorot.


1) Buat Proyek > Buat > ZEPETO > TypeScript dan ganti namanya menjadi NPCCreatorWithNameTag.
2) Tulis skrip contoh seperti yang ditunjukkan di bawah ini.

Alur skrip adalah sebagai berikut:
- Mulai()
- Panggil fungsi kustom SetNameTag().
- SetNameTag()
- Secara dinamis menghasilkan label nama untuk NPC dan menyesuaikan posisi label nama yang dihasilkan di atas kepala NPC
- Atur teks di dalam label nama.
- Perbarui()
- Panggil fungsi kustom UpdateCanvasRotation() untuk memutar kanvas agar sesuai dengan kamera.

3) Setelah Anda selesai menulis skrip, tambahkan ke objek NPC.
4) Di Inspector, tetapkan Zepeto Id, Label Nama, Prefab Label Nama, dan Offset Y Label Nama.
- Label Nama: Nama yang akan muncul di label nama NPC.
- Prefab Label Nama: Prefab kanvas label nama.
- Offset Y Label Nama: Variabel yang menyimpan nilai offset sumbu-y untuk objek Kanvas Label Nama. Ketika Anda menempatkan label nama di atas kepala karakter, Anda dapat menyesuaikan jarak antara karakter dan label nama.

5) tekan tombol putar untuk mengeksekusi, dan NPC dengan nama tag akan dibuat.


Anda dapat mengendalikan tindakan NPC.



Gunakan ZEPETO Character API untuk membuat NPC melompat.
Anda dapat menggunakan ZEPETO Character API untuk menerapkan berbagai perilaku.
📘 Silakan merujuk ke panduan berikut. [Karakter ZEPETO]

1) Pergi ke Proyek > Buat > ZEPETO > Buat TypeScript dan ganti namanya menjadi NPCJump.
2) Tulis skrip contoh seperti yang ditunjukkan di bawah ini.
Alur skrip adalah sebagai berikut:
- Mulai()
- Panggil coroutine JumpCoroutine().
- JumpCoroutine()
- Panggil metode Jump() untuk membuat karakter NPC melompat setiap 5 detik.

3) Setelah Anda selesai menulis skrip, tambahkan skrip ke objek NPC.
4) Tekan tombol Putar dan NPC akan melompat.



Gunakan Animator Controller untuk menerapkan gerakan untuk NPC.
Anda dapat menggunakan Animator Controller untuk menerapkan berbagai perilaku yang lebih luas.
📘 Unity Animator Controller https://docs.unity3d.com/Manual/class-AnimatorController.html


- Gunakan panduan berikut untuk mempersiapkan klip animasi gerakan untuk NPC Anda lakukan.
📘 Silakan merujuk ke panduan berikut.


1) Proyek > Buat > Buat Pengontrol Animator dan ganti namanya menjadi NPCAnimatorController.

2) Di tab Animator, Buat Status > Kosong.

3) Di Inspector, ganti namanya dengan tepat dan tetapkan klip animasi ke Motion.


1) Buat Proyek > Buat > ZEPETO > TypeScript dan ganti namanya menjadi NPCGesture.
2) Tulis skrip contoh seperti yang ditunjukkan di bawah ini.

Alur skrip adalah sebagai berikut:
- Start()
- Dapatkan komponen Animator dari objek NPC dan atur ke Animator Controller yang ditentukan oleh variabel npcAnimator.

3) Setelah Anda selesai menulis skrip, tambahkan ke objek Lokasi di mana NPC akan dibuat.
4) Di Inspector, tetapkan Id Zepeto, Animator NPC.
- Animator NPC: Pengontrol animasi NPC.

5) Tekan tombol play untuk menjalankannya dan Anda akan melihat NPC membuat gerakan.
6) Anda dapat menerapkan ini untuk membuat NPC yang melakukan lebih banyak tindakan selain gerakan dan lompatan.


Anda dapat membuat Kanvas di atas kepala NPC, menampilkan gambar atau teks, dan membuatnya berbuih.

1) Buat Hierarchy> UI > Canvas dan ganti namanya menjadi PrefSpeechBubbleCanvas.
- Atur Mode Render ke World Space.

2) Buat Hierarchy> UI > Gambar sebagai anak dari PrefSpeechBubbleCanvas dan ganti namanya menjadi SpeechBubbleImage.
- Ini adalah gambar yang akan menjadi latar belakang gelembung ucapan.

3) Buat Hierarki> UI > Teks sebagai anak dari SpeeachBubbleImage dan ganti namanya menjadi SpeeachBubbleText.
- Ini adalah teks di dalam gelembung ucapan.
- Tambahkan komponen Content Size Fitter untuk membuat teks dengan ukuran yang tepat.

4) Setelah selesai, seret ke jendela Proyek untuk menjadikannya Prefab, dan kemudian hapus PrefSpeechBubbleCanvas yang masih ada di Sorotan.


1) Buat Proyek > Buat > ZEPETO > TypeScript dan ganti namanya menjadi NPCSpeechBubble.
2) Tulis skrip contoh seperti yang ditunjukkan di bawah ini.

Alur skrip adalah sebagai berikut:
- Mulai()
- Panggil fungsi kustom SetBubble().
- SetBubble()
- Buat kanvas gelembung bicara (speechBubblePrefab) dan posisikan gelembung bicara yang dibuat di atas kepala NPC
- Panggil fungsi kustom SetBubbleText() untuk mengatur teks di dalam gelembung bicara.
- SetBubbleText()
- Mengaktifkan kanvas gelembung bicara NPC (_speechBubbleObject).
- Menampilkan string yang diberikan sebagai parameter (bubbleText) di dalam gelembung bicara.
- Perbarui()
- Panggil fungsi kustom UpdateCanvasRotation() untuk memutar kanvas agar sesuai dengan kamera.

3) Setelah Anda selesai menulis skrip, tambahkan ke objek Lokasi di mana NPC akan dibuat.
4) Di Inspector, tetapkan Zepeto Id, Teks Balon Bicara, Prefab Balon Bicara, dan Offset Y Balon Bicara.
- Teks Balon Bicara: Variabel ini menyimpan dialog yang akan diucapkan karakter NPC dalam balon bicara. Dalam contoh kami, kami menyimpan dialog berikut: "Halo Dunia".
- Prefab Balon Bicara: Variabel ini menyimpan prefab untuk GameObject Kanvas Balon Bicara.
- Offset Y Balon Bicara: Variabel ini menyimpan nilai offset sumbu-y untuk GameObject Kanvas Balon Bicara. Ini memungkinkan Anda untuk menyesuaikan jarak antara karakter dan balon bicara saat Anda menempatkan balon bicara di atas kepala karakter.
5) tekan tombol play untuk mengeksekusi, dan Anda akan melihat balon bicara mengapung di atas kepala NPC.


Anda dapat menerapkan banyak konten menyenangkan dengan berinteraksi dengan NPC.
Dalam panduan ini, kami akan menggunakan contoh untuk menerapkan gelembung ucapan yang berubah saat NPC didekati.


1) Tambahkan komponen Collider ke objek Anda untuk berinteraksi dengan NPC dan periksa isTrigger.

2) Ubah ukuran Collider agar pemain dapat berinteraksi dengan NPC.


1) Buat Proyek > Buat > ZEPETO > TypeScript dan ganti namanya menjadi NPCInteraction.
2) Tulis skrip contoh seperti yang ditunjukkan di bawah ini.

Alur skrip adalah sebagai berikut:
- OnTriggerEnter(), OnTriggerExit()
- Ketika pemicu terdeteksi dengan memasuki area collider, panggil fungsi kustom SetBubbleText() untuk mengatur teks di dalam gelembung bicara menjadi changedSpeechBubbleText.
- Ketika meninggalkan area collider, panggil fungsi kustom SetBubbleText() untuk mengatur teks di dalam gelembung bicara menjadi speechBubbleText.

3) Setelah Anda selesai menulis skrip, tambahkan ke objek Lokasi di mana NPC akan dibuat.
4) Di Inspector, tetapkan Zepeto Id, Teks Gelembung Bicara, Prefab Gelembung Bicara, Offset Y Gelembung Bicara, dan Gelembung Bicara yang Diubah.
- Teks Gelembung Bicara: Variabel ini menyimpan dialog yang akan diucapkan karakter NPC di dalam gelembung bicara. Dalam contoh kami, kami menyimpan dialog berikut: "Halo Dunia".
- Prefab Gelembung Bicara: Variabel ini menyimpan prefab untuk GameObject Kanvas Gelembung Bicara.
- Offset Y Gelembung Bicara: Variabel ini menyimpan nilai offset sumbu-y untuk GameObject Kanvas Gelembung Bicara. Ini memungkinkan Anda untuk menyesuaikan jarak antara karakter dan gelembung bicara saat menempatkan gelembung bicara di atas kepala karakter.
- Gelembung Bicara yang Diubah: Menyimpan dialog yang akan ditampilkan di gelembung bicara NPC ketika pemain memasuki collider NPC.

5) tekan play untuk mengeksekusi, dan ketika pemain mendekati NPC, teks di gelembung bicara akan berubah.


Untuk membuat format dialog, buat UI menggunakan panel.
Berikut adalah contoh dialog sederhana yang terdiri dari panel dan tombol.

Ini adalah contoh skrip yang membuka dialog saat berinteraksi dengan NPC dan memprosesnya saat setiap tombol ditekan.
Terapkan ini untuk menerapkan konten yang menarik.