Pada umumnya di dalam sebuah game komputer digunakan banyak tombol, baik yang ada pada mouse maupun di keyboard. Materi ini akan membahas bagaimana Unity mendeteksi penekanan tombol tersebut.
Unity memiliki banyak cara dalam mendeteksi tombol tekan oleh player, silahkan perhatikan contoh program.
Buatlah Project Baru atau cukup Scene Baru (jika masih ingin menggunakan project sebelumnya).
Baca Juga : Universitas Budi Luhur
Buat script C# kemudian beri nama InputMouse.cs.
HiHiHi... Ok Lanjut..... Scritpnya:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InputMouse : MonoBehaviour {
string teks1, teks2, teks3, teks4;
int jmlScrol;
float delta;
// Use this for initialization
void Start () {
jmlScrol = 0 ;
}
// Update is called once per frame
void Update () {
if ( Input.GetKey(KeyCode.Mouse0)) {
teks1 = "Mouse: Klik Kiri";
} else {
teks1 = "Mouse: Klik Kanan";
}
teks2 = "Position: " + Input.mousePosition.ToString();
if ( Input.mouseScrollDelta.y > 0 ) {
delta = Input.mouseScrollDelta.y;
jmlScrol++;
} else if ( Input.mouseScrollDelta.y < 0 ){
delta = Input.mouseScrollDelta.y;
jmlScrol--;
}
teks3 = "Scroll: " + delta.ToString();
teks4 = "Jumlah Scroll: " + jmlScrol.ToString();
}
void OnGUI() {
GUILayout.BeginArea(new Rect(10,15,400,200));
GUILayout.Label(teks1);
GUILayout.Label(teks2);
GUILayout.Label(teks3);
GUILayout.Label(teks4);
GUILayout.EndArea();
}
}
using System.Collections.Generic;
using UnityEngine;
public class InputMouse : MonoBehaviour {
string teks1, teks2, teks3, teks4;
int jmlScrol;
float delta;
// Use this for initialization
void Start () {
jmlScrol = 0 ;
}
// Update is called once per frame
void Update () {
if ( Input.GetKey(KeyCode.Mouse0)) {
teks1 = "Mouse: Klik Kiri";
} else {
teks1 = "Mouse: Klik Kanan";
}
teks2 = "Position: " + Input.mousePosition.ToString();
if ( Input.mouseScrollDelta.y > 0 ) {
delta = Input.mouseScrollDelta.y;
jmlScrol++;
} else if ( Input.mouseScrollDelta.y < 0 ){
delta = Input.mouseScrollDelta.y;
jmlScrol--;
}
teks3 = "Scroll: " + delta.ToString();
teks4 = "Jumlah Scroll: " + jmlScrol.ToString();
}
void OnGUI() {
GUILayout.BeginArea(new Rect(10,15,400,200));
GUILayout.Label(teks1);
GUILayout.Label(teks2);
GUILayout.Label(teks3);
GUILayout.Label(teks4);
GUILayout.EndArea();
}
}
Drag and Drop script InputMouse.cs ke GameObject MainCamera di jendela Hierarchy.
Jalankan Game
Jika tidak ada kesalahan, setelah game dijalankan, dan mouse di klik maka akan menampilkan button mana yang di klik. Selain itu akan menampilkan posisi pointer pada layar, dan jika scroll pada mouse digerakkan akan tampil jumlah scroll...
Buatlah Project Baru di Unity atau cukup Scene Baru (jika masih ingin menggunakan project sebelumnya).
Buat script C# kemudian beri nama InputKeyboard.cs.
Buat script C# kemudian beri nama InputKeyboard.cs.
Berikut Scriptnya:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InputKeyboard : MonoBehaviour {
string teks1, teks2;
public KeyCode pilihanUser;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if ( Input.GetKeyDown("a")) {
teks1 = "KeyDown: Tombol A";
}
if ( Input.GetKey(KeyCode.B)) {
teks1 = "KeyDown: Tombol B";
}
if ( Input.GetKeyUp(pilihanUser)) {
teks1 = "KeyUp: Tombol Pilihan User";
}
if ( Input.anyKey ) {
teks2 = "Ada Tombol Yang Ditekan Terus";
} else {
teks2 = "";
}
if ( Input.GetAxis("Fire1") > 0 ) {
teks1 = "Input Dari GetAxis (Left Ctrl/Mouse)";
}
}
void OnGUI() {
GUILayout.BeginArea(new Rect(10,15,400,200));
GUILayout.Label(teks1);
GUILayout.Label(teks2);
GUILayout.EndArea();
}
}
using System.Collections.Generic;
using UnityEngine;
public class InputKeyboard : MonoBehaviour {
string teks1, teks2;
public KeyCode pilihanUser;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if ( Input.GetKeyDown("a")) {
teks1 = "KeyDown: Tombol A";
}
if ( Input.GetKey(KeyCode.B)) {
teks1 = "KeyDown: Tombol B";
}
if ( Input.GetKeyUp(pilihanUser)) {
teks1 = "KeyUp: Tombol Pilihan User";
}
if ( Input.anyKey ) {
teks2 = "Ada Tombol Yang Ditekan Terus";
} else {
teks2 = "";
}
if ( Input.GetAxis("Fire1") > 0 ) {
teks1 = "Input Dari GetAxis (Left Ctrl/Mouse)";
}
}
void OnGUI() {
GUILayout.BeginArea(new Rect(10,15,400,200));
GUILayout.Label(teks1);
GUILayout.Label(teks2);
GUILayout.EndArea();
}
}
Drag and drop script InputKeyboard.cs ke GameObject MainCamera di jendela Hierarchy.
Jalankan Game
Baca Juga : Universitas Budi Luhur
Jika tidak ada kesalahan, setelah game dijalankan, dan ditekan tombol A, tombol B dan pilihan user,
maka akan muncul hasilnya di panel Game. Pilihan User bisa diganti saat game sudah dijalankan.
maka akan muncul hasilnya di panel Game. Pilihan User bisa diganti saat game sudah dijalankan.
Input Manager
Fungsi deteksi keyboard yang sudah dibahas di atas seharusnya tidak sulit untuk dipahami karena bentuknya sudah sangat jelas. Pertanyaan mungkin baru muncul pada Parameter “Fire1”. “Kenapa efeknya bisa muncul pada saat menekan klik kiri mouse atau tombol kiri Ctrl? padahal kita tidak pernah mendefinisikan itu sebelumnya?”. Hal ini disebabkan Unity memiliki beberapa parameter standar yang bisa digunakan untuk membantu proses deteksi input.
Klik menu Edit -> Project Settings -> Input.
Pada panel Input Manager inilah bisa didapatkan informasi tentang berbagai input standar yang telah dikenali oleh Unity. Bahkan kita bisa menambahkan daftar input kita sendiri bila diperlukan.
Tidak ada komentar:
Posting Komentar