Translate

Membuat Alat untuk Mengendalikan Game Unity 3D

Membuat Alat untuk Mengendalikan Game Unity 3D

             
          Pada pagi hari yang cerah ini saya akan menjelaskan mengenai bagaimana caranya agar mikrokontroller bisa mengendalikan object yang ada di unity 3D, versi Unity 3D pada contoh adalah versi 3.3.0, object yang dikendalikan bisa bermacam-macam, bisa bola, kubus, atau lainnya. Pada contoh kali ini saya menggunakan sebuah bola yang terdapat lintasan berbentuk persegi panjang. Mikrokontroller mengendalikan arah gerak bola tersebut kemanapun ia pergi dengan menggunakan 4 buah tombol yang dipasang di mikrokontroller. Untuk lebih jelasnya berikut gambar dan programnya.



a. Arduino Uno





b. Program Arduino

const int button1 = 6;
const int button2 = 7;
const int button3 = 5;
const int button4 = 4;

void setup()
{
Serial.begin(9600);

pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(button4, INPUT);

digitalWrite(button1, HIGH);
digitalWrite(button2, HIGH);
digitalWrite(button3, HIGH);
digitalWrite(button4, HIGH);

}


void loop()
{

  if(digitalRead(button1)== LOW)
    {
      Serial.println("1");
   //   Serial.flush();
      delay(200);
    }
   
  if(digitalRead(button2)== LOW)
    {
      Serial.println("2");
     // Serial.flush();
      delay(200);
    }
     if(digitalRead(button3)== LOW)
    {
      Serial.println("3");
   //   Serial.flush();
      delay(200);
    }
   
  if(digitalRead(button4)== LOW)
    {
      Serial.println("4");
     // Serial.flush();
      delay(200);
    }
}





c. Program C# Unity 3D

using UnityEngine;
using System.Collections;
using System.IO.Ports;

 public class kendali : MonoBehaviour
 {
     SerialPort stream = new SerialPort("COM3", 9600);
     public float speed = 1.5f;
     string receivedData = "EMPTY";
          
     void Update ()
     {
           stream.Open();
           receivedData = stream.ReadLine();
           stream.Close();
       
       
switch(receivedData )
  {
      case "1" :
           transform.position += Vector3.left * speed * Time.deltaTime;
      break;

      case "2" :
           transform.position += Vector3.right * speed * Time.deltaTime;
      break;
     
    case "3" :
           transform.position += Vector3.forward * speed * Time.deltaTime;
      break;

      case "4" :
           transform.position -= Vector3.forward * speed * Time.deltaTime;
      break;

  }

     }
 }




d. Cara mengaktifkan Fitur Serial dan Program kendali adalah seperti berikut.

- Pertama dan yang sangat penting, untuk mengaktifkan fitur serial lakukanlah langkah berikut
- Pilih FILE -> BUILD SETTINGS
- Pilih windows -> Player setting -> Rubah Api Compatibility Level jadi .NET 2.0


-Kemudian Letakkan program c# di sub object bola



- Supaya Camera mengikuti arah gerak bola tambahkan program character controller yang sudah tersedia di standart asset, hanya perlu cari dan letakkan di sub object bola

- Jika berhasil maka saat tombol ditekan, object bola akan bergerak




e. VIDEO HASILNYA










1 comment:

  1. om, mau nanya, bisa tidak unity 3d dipakai menjadi GUI untuk sistem monitoring alat dan pemberi perintah ke alat ?

    ReplyDelete