1. Pada direktori “Assets” tersebut, buat direktori baru dengan nama ”Character”
untuk menyimpan seluruh asset karakter yang akan digunakan.
2. Pada direktori “Character” tersebut, buat direktori baru dengan nama ”Cat” untuk
menyimpan seluruh asset karater utama yang akan digunakan.
23 | P a g e
3. Pada direktori “Cat” tersebut, buat direktori baru dengan nama ”fall”, ”idle”,
”jump”, dan ”run” untuk menyimpan seluruh asset animasi karakter utama.
4. Pada direktori ”idle”, import gambar yang sudah disediakan pada folder Google
Drive untuk animasi karakter idle.
24 | P a g e
5. Karena gambar pada idle tersebut masih satu gambar, maka ’potong’ gambar
tersebut sehingga menjadi beberapa bagian. Pada bagian Inspector ubah Sprite
Mode menjadi Multiple, Filter Mode menjadi Point (no filter), dan Compression
menjadi None. Dan simpan dengan memilih opsi Apply.
25 | P a g e
6. Pilih opsi Sprite Editor untuk mengubah gambar yang satu menjadi beberapa
bagian.
7. Pilih Slice pada Sprite Editor kemudian pada Type pilih Automatic. Pilih opsi Slice
untuk memotong gambar dan pilih Apply.
26 | P a g e
8. Dan gambar karakter pun telah menjadi beberapa bagian.
9. Tambahkan salah satu gambar karakter pada scene game dengan drag and drop.
Atur ukuran dan lainnya pada bagian Inspector, atur juga nama game object
tersebut dengan nama “cat” pada bagian Hierarchy.
27 | P a g e
10. Pada direktori “Assets”, buat direktori baru dengan nama ”Script” untuk
menyimpan seluruh asset script pada game. Bahasa pemrograman yang digunakan
pada Game Engine Unity adalah bahasa pemrograman C#. tambahkan script baru
pada direktori tersebut dengan nama character_movement. Drag and drop script
character_movement ke game object cat.
28 | P a g e
12. Tambahkan komponen Rigidbody 2D pada game object cat kemudian centang
Freeze Rotation Z untuk mengunci pergerakan Z pada karakter.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
horizontal = Input.GetAxisRaw("Horizontal");
rb.velocity = new Vector2(horizontal * movementSpeed,
rb.velocity.y);
}
29 | P a g e
}
Source code untuk pergerakan karakter ke kiri dan ke kanan dengan berbalik arah.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
void Start()
{
rb = GetComponent<Rigidbody2D>();
sprite = GetComponent<SpriteRenderer>();
}
void Update()
{
horizontal = Input.GetAxisRaw("Horizontal");
rb.velocity = new Vector2(horizontal * movementSpeed,
rb.velocity.y);
if (Input.GetKey(KeyCode.A))
{
horizontal = -1f;
}
else if (Input.GetKey(KeyCode.D))
{
horizontal = 1f;
}
UpdateAnimationState();
}
30 | P a g e
{
sprite.flipX = true;
}
}
}
14. Tambahkan Movement Speed pada script di game object cat dengan menggunakan
angka.
15. Pada direktori “Assets”, buat direktori baru dengan nama ”Animation” untuk
menyimpan seluruh asset animasi.
31 | P a g e
16. Buat animation baru pada direktori tersebut dengan nama character_idle.
17. drag and drop file character_idle tersebut ke game object cat.
32 | P a g e
18. Buka window animation dengan menggunakan shortcut CTRL + 6.
33 | P a g e
20. Atur Samples dari animasi tersebut sehingga kecepatannya sesuai. Dan animasi
idle telah selesai dibuat.
34 | P a g e
23. Buka direktori Assets\Character\Cat\run. Tambahkan seluruh gambar tersebut ke
Animation. Atur Samples dari animasi tersebut sehingga kecepatannya sesuai. Dan
animasi run telah selesai dibuat.
24. Atur animasi sehingga dapat saling berelasi. Buka pada menu Animator.
35 | P a g e
25. Pada menu Parameters, tambahkan parameter baru dengan tipe data integer untuk
memanggil animasi.
26. Input nama parameter tersebut dengan nama “state” dan dengan nilai 0.
36 | P a g e
27. Buat transisi antar animasi dengan menggunakan klik kanan pada animasi,
kemudian pilih Make Transition dan klik pada animasi selanjutnya.
28. Atur transisi pada animasi character_idle ke character_run tersebut. Hapus centang
pada Has Exit Time, atur Transtion Duration menjadi 0, dan tambahkan kondisi
pada bagian Condition dengan state dan dengan nilai Equals 1.
37 | P a g e
29. Atur transisi pada animasi character_run ke character_idle tersebut. Hapus centang
pada Has Exit Time, atur Transtion Duration menjadi 0, dan tambahkan kondisi
pada bagian Condition dengan state dan dengan nilai Equals 0.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
void Start()
{
rb = GetComponent<Rigidbody2D>();
sprite = GetComponent<SpriteRenderer>();
anim = GetComponent<Animator>();
}
void Update()
38 | P a g e
{
horizontal = Input.GetAxisRaw("Horizontal");
rb.velocity = new Vector2(horizontal * movementSpeed,
rb.velocity.y);
if (Input.GetKey(KeyCode.A))
{
horizontal = -1f;
}
else if (Input.GetKey(KeyCode.D))
{
horizontal = 1f;
}
UpdateAnimationState();
}
anim.SetInteger("state", (int)state);
}
}
39 | P a g e
31. Tambahkan layer pada Inspector. Pilih pada layer kemudian pilih opsi Add Layer.
33. Pilih game object Collider kemudian ganti layer menjadi ground.
40 | P a g e
34. Jika muncul peringatan, maka pilih Yes, change children.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
void Start()
{
rb = GetComponent<Rigidbody2D>();
sprite = GetComponent<SpriteRenderer>();
anim = GetComponent<Animator>();
}
void Update()
{
horizontal = Input.GetAxisRaw("Horizontal");
41 | P a g e
rb.velocity = new Vector2(horizontal * movementSpeed,
rb.velocity.y);
if (Input.GetKey(KeyCode.A))
{
horizontal = -1f;
}
else if (Input.GetKey(KeyCode.D))
{
horizontal = 1f;
}
UpdateAnimationState();
}
bool isGrounded()
{
Vector2 position = transform.position;
Vector2 direction = Vector2.down;
float distance = 0.5f;
return false;
}
42 | P a g e
{
state = movementState.character_run;
sprite.flipX = true;
}
anim.SetInteger("state", (int)state);
}
}
36. Pilih game object cat, kemudian atur Jump Force dengan angka dan ganti Ground
menjadi layer ground.
37. Pilih game object cat, kemudian atur Gravity Scale dengan angka sehingga
gravitasinya sesuai.
43 | P a g e
38. Buat animation baru pada direktori Assets\Animation dengan nama
character_jump dan character_fall.
39. Drag and drop file character_jump dan character_fall tersebut ke game object cat.
Buka window animation dengan menggunakan shortcut CTRL + 6. Buka direktori
Assets\Character\Cat\jump. Tambahkan seluruh gambar tersebut ke Animation.
Atur Samples dari animasi tersebut sehingga kecepatannya sesuai. Dan animasi
jump telah selesai dibuat.
44 | P a g e
40. Ganti animasi menjadi character_fall pada window Animation. Buka direktori
Assets\Character\Cat\fall. Tambahkan seluruh gambar tersebut ke Animation. Atur
Samples dari animasi tersebut sehingga kecepatannya sesuai. Dan animasi fall telah
selesai dibuat.
41. Atur animasi sehingga dapat saling berelasi. Buka pada menu Animator.
45 | P a g e
42. Tambahkan transisi pada setiap tabel. Hapus centang pada Has Exit Time dan ubah
Transition Duration menjadi 0 pada seluruh transisi animasi.
46 | P a g e
43. Tambahkan source code character_movement sehingga karakter dapat melompat
beserta dengan animasi.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
void Start()
{
rb = GetComponent<Rigidbody2D>();
sprite = GetComponent<SpriteRenderer>();
anim = GetComponent<Animator>();
}
void Update()
{
horizontal = Input.GetAxisRaw("Horizontal");
rb.velocity = new Vector2(horizontal * movementSpeed,
rb.velocity.y);
if (Input.GetKey(KeyCode.A))
{
horizontal = -1f;
}
else if (Input.GetKey(KeyCode.D))
{
horizontal = 1f;
}
47 | P a g e
rb.velocity = Vector2.up * jumpForce;
}
UpdateAnimationState();
}
bool isGrounded()
{
Vector2 position = transform.position;
Vector2 direction = Vector2.down;
float distance = 0.5f;
return false;
}
anim.SetInteger("state", (int)state);
48 | P a g e