Anda di halaman 1dari 28

MK AUGMENTED REALITY

Dosen Raden Wirawan, SE., M.Kom

Tahun Ajaran 2022 2023

TUTORIAL MEMBUAT PROJEK AR PADA UNITY

Versi 2018

Nama Proyek :

Nama Mahasiswa :

I. Membuka aplikasi Unity


1. Buka aplikasi Unity

2. Akan tampil jendela sebagai berikut, kemudian klik Work Offline untuk bekerja
secara offline
3. Untuk membuat projek baru klik New pada bagian kanan atas

4. Beri nama projek sesuai yang Anda inginkan


5. Lembar kerja sedang disiapkan, tunggulah sampai proses selesai.

6. Lembar kerja telah terbuka, siap untuk merancang projek


7. Namun sebelum itu kita pastikan dulu apakah JDK dan SDKnya sudah terinstall dan
sudah berjalan. Yaitu dengan cara buka menu Edit -> Preferences

Pastikan bahwan JDK dan SDK sudah kalian download dan menentukan location filenya.
II. Buat scene untuk AR Camera, yaitu dengan menampilkan
sebuah objek diatas marker.
1. Buatlah scene baru, dan beri nama scene Kubus.
2. Hapus saja main Cameranya dan ganti dengan AR Camera.
Klik kanan pada bagian Hierarcy kemudian pilih Vuforia Engine dan pilih AR
Camera.

3. Kemudian import database marker Anda yang telah anda download dari Vuforia.
Caranya yaitu dengan drag file database anda kedalam unity dan lepaskan pada
bagian hierarcy, maka secara otomatis akan menampilkan jendela seperti berikut,
Klik Inport.
Database telah berhasil di import.

4. Pilihlah salah satu marker yang ada pada database Anda kemudian sesuaikan
ukurannya.

5. Kemudian kembali ke AR Camera. Pada Inspecter AR Camera klik Open Vuforia


Engine Configuration
Kemudian paste licensy key yang kita copy dari vuforia, pastekan disini sesuai
licency database marker yang Anda gunakan.

6. Langkah selanjutnya yaitu import objek 3D dengan ekstensi file .dae kedalam
unity.
Drag kedalam folder Objek 3D yang telah kita buat sebelumnya.

7. Drag salah satu objek kedalam image target, kemudian sesuaikan ukuran
objeknya sehingga nampak pas berada diatas marker.
8. Kemudian buatlah canvas = klik kanan pada bagian Hierarcy, pilih UI -> Canvas.

Agar kita dapat dengan mudah mendesain pada bagian tampilan, Anda dapat klik
pada tampilan 2D.
8. Buatlah beberapa panel didalam canvas.
Berdasarkan projek yang akan saya buat disini saya menyiapkan beberapa fitur
seperti untuk menampilkan sifat-sifat, rumus dan jaring-jaring. Maka saya buatkan
terlebih dahulu panel Tombol, yang berisikan button sifat, rumus dan jaring-jaring,
kemudian saya siapkan juga untuk tombol close.

9. Kemudian buat kembali panel untuk tampilan pada sifat-sifat bangun ruang, rumus
serta halaman untuk menampilkan animasi jaring-jaring.
Tampilan Sifat-Sifat
Tampilan Detail Kubus

Tampilan Rumus

Tampilan Contoh Soal


Tampilan jaring-jaring
Karena jaring-jaring yang ditampilkan berupa animasi. Maka disiapkan 3 tombol
yaitu play, pause dan stop.

Buatlah kembali Scene AR seperti Scene Balok, Tabung, Bola, Kerucut, Limas segi
empat dan Prisma Segitiga dengan langkah-langkah seperti diatas, mulai dari
memasukkan marker sampai dengan cara menampilkan jaring-jaring.
III. Pembuatan menu awal dan tampilan-tampilan
10. Beri kanvas dan tentukan ukurannya (yaitu ukuran screen 1600 x 720)

11. Simpan scene dengan nama Menu


12. Buat folder untuk mengelompokkan berbagai asset yang diperlukan seperti folder
icon, script dan scene.
13. Import icon seperti tombol dan gambar-gambar yang diperlukan untuk background

14. Buatlah panel sesuai yang anda perlukan

15. Kemudian aturlah dan rancanglah tampilan sesuai yang inginkan, masukkan beberapa
gambar seperti icon utama aplikasi dan icon-icon tombol
16. Setelah anda rancang tampilan aplikasinya kemudian anda atur fungsinya, yaitu buat
scriptnya klik Create Empty

17. Berikut tampilan script yang ada pada visual studio 2007. Buatlah script seperti
berikut untuk menjalankan fungsi-fungsi dari tiap tombol yang ada.

18. Untuk memasukkan script tersebut kedalam tombol, tekan tombol yang ada pada
Canvas kemudian atur pada bagian Button (Script).
Lakukan cara tersebut dengan tombol-tombol lainnya.
19. Kemudian untuk tampilan-tampilan dari tiap panelnya juga atur sesuai yang anda
inginkan. Seperti untuk tampilan pada panduan dan profil.

20. Kemudian buat kembali scene baru dengan nama MainMenu, dan buatlah kembali
canvas panel dan button seperti pada langkah sebelumnya. (Untuk semua script yang
diperlukan pada project ini akan saya cantumkan pada bagian akhir tutor ini).
Selanjutnya jika semua item menu dan scene sudah dibuat dan diintegrasikan sisa
melakukan build dalm bentuk APK.

Dan untuk build APK android sudah dijelaskan dipertemuan sebelumnya.

Terima Kasih

Selanjutnya ketemu di Tugas Besar Final Tes


Listing Program Aplikasi

a. Listing Menu Utama (MenuScript)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class MenuScript : MonoBehaviour


{
public GameObject MenuPanel;
public GameObject PanduanPanel;
public GameObject ProfilPanel;

// Start is called before the first frame update


void Start()
{
MenuPanel.SetActive(true);
PanduanPanel.SetActive(false);
ProfilPanel.SetActive(false);
}

// Update is called once per frame


void Update()
{

}
public void btPanduanClicked()
{
MenuPanel.SetActive(false);
PanduanPanel.SetActive(true);
ProfilPanel.SetActive(false);
}

public void btBackPanduanClicked()


{
MenuPanel.SetActive(true);
PanduanPanel.SetActive(false);
ProfilPanel.SetActive(false);
}

public void btProfilClicked()


{
MenuPanel.SetActive(false);
PanduanPanel.SetActive(false);
ProfilPanel.SetActive(true);
}

public void btBackProfilClicked()


{
MenuPanel.SetActive(true);
PanduanPanel.SetActive(false);
ProfilPanel.SetActive(false);
}

public void btKeluarClicked()


{
Application.Quit();
}
}

b. Listing AR Camera (CameraScript)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraScript : MonoBehaviour


{
public GameObject TombolPanel;
public GameObject SifatPanel;
public GameObject RumusPanel;
public GameObject JaringPanel;
public GameObject DetailPanel;
public GameObject ContohPanel;

// Start is called before the first frame update


void Start()
{
TombolPanel.SetActive(true);
SifatPanel.SetActive(false);
RumusPanel.SetActive(false);
JaringPanel.SetActive(false);
DetailPanel.SetActive(false);
ContohPanel.SetActive(false);
}

// Update is called once per frame


void Update()
{

public void btSifatClicked()


{
TombolPanel.SetActive(false);
SifatPanel.SetActive(true);
RumusPanel.SetActive(false);
JaringPanel.SetActive(false);
DetailPanel.SetActive(false);
ContohPanel.SetActive(false);
}

public void btBackSifatClicked()


{
TombolPanel.SetActive(true);
SifatPanel.SetActive(false);
RumusPanel.SetActive(false);
JaringPanel.SetActive(false);
DetailPanel.SetActive(false);
ContohPanel.SetActive(false);
}

public void btRumusClicked()


{
TombolPanel.SetActive(false);
SifatPanel.SetActive(false);
RumusPanel.SetActive(true);
JaringPanel.SetActive(false);
DetailPanel.SetActive(false);
ContohPanel.SetActive(false);
}

public void btBackRumusClicked()


{
TombolPanel.SetActive(true);
SifatPanel.SetActive(false);
RumusPanel.SetActive(false);
JaringPanel.SetActive(false);
DetailPanel.SetActive(false);
ContohPanel.SetActive(false);
}

public void btJaringClicked()


{
TombolPanel.SetActive(false);
SifatPanel.SetActive(false);
RumusPanel.SetActive(false);
JaringPanel.SetActive(true);
DetailPanel.SetActive(false);
ContohPanel.SetActive(false);
}

public void btBackJaringClicked()


{
TombolPanel.SetActive(true);
SifatPanel.SetActive(false);
RumusPanel.SetActive(false);
JaringPanel.SetActive(false);
DetailPanel.SetActive(false);
ContohPanel.SetActive(false);
}

public void btDetailClicked()


{
TombolPanel.SetActive(false);
SifatPanel.SetActive(false);
RumusPanel.SetActive(false);
JaringPanel.SetActive(false);
DetailPanel.SetActive(true);
ContohPanel.SetActive(false);
}

public void btBackDetailClicked()


{
TombolPanel.SetActive(false);
SifatPanel.SetActive(true);
RumusPanel.SetActive(false);
JaringPanel.SetActive(false);
DetailPanel.SetActive(false);
ContohPanel.SetActive(false);
}

public void btContohClicked()


{
TombolPanel.SetActive(false);
SifatPanel.SetActive(false);
RumusPanel.SetActive(false);
JaringPanel.SetActive(false);
DetailPanel.SetActive(false);
ContohPanel.SetActive(true);
}

public void btBackContohClicked()


{
TombolPanel.SetActive(false);
SifatPanel.SetActive(false);
RumusPanel.SetActive(true);
JaringPanel.SetActive(false);
DetailPanel.SetActive(false);
ContohPanel.SetActive(false);
}
}

c. Listing Tombol (Button_script)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class button_script : MonoBehaviour


{
public void play_sound(int s){
AudioManager.instance.s_playsound(s);
}
}

d. Listing Pindah Scene (LoadScene)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class LoadScene : MonoBehaviour


{
public void loadscene(string scenename)
{
SceneManager.LoadScene(scenename);
}
}

e. Listing Password (PasswordScript)

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class PasswordScript : MonoBehaviour


{
private string password = "ready";
public InputField UserInput;
public string USERINPUT;
private string correct = "Scenes/Quiz";
private string wrong = "Scenes/PassSalah";

public void CheckPassword ()


{
USERINPUT = UserInput.text;

if (USERINPUT !=null)
{
if (USERINPUT == password)
{
SceneManager.LoadScene(correct);
}
else
{
SceneManager.LoadScene(wrong);
}
}

f. Listing Ketika Password Yang Dimasukkan Salah (Retry)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Retry : MonoBehaviour


{
public string main = "Scenes/ScenePass";
public void GoToMain ()
{
SceneManager.LoadScene(main);
}
}
g. Listing Jawab Soal (Jawab)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Jawab : MonoBehaviour


{
public GameObject feed_benar;
public GameObject feed_salah;

public void jawaban(bool jawab)


{
if (jawab)
{
feed_benar.SetActive(false);
feed_benar.SetActive(true);
int skor = PlayerPrefs.GetInt ("skor")+10;
PlayerPrefs.SetInt("skor", skor);
}
else
{
feed_salah.SetActive(false);
feed_salah.SetActive(true);
}
gameObject.SetActive (false);
transform.parent.GetChild(gameObject.transform.GetSiblingIndex() +
1).gameObject.SetActive(true);

}
}

h. Listing Skor (Skor)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Skor : MonoBehaviour


{
// Start is called before the first frame update
void Start()
{
PlayerPrefs.SetInt("skor", 0);
}

// Update is called once per frame


void Update()
{

GetComponent<Text> ().text = PlayerPrefs.GetInt ("skor").ToString();


}
}

i. Listing Audio (AudioManager)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AudioManager : MonoBehaviour


{
public static AudioManager instance;

public AudioClip[] s_audiolist;

List<AudioSource> s_source = new List<AudioSource>();

void Awake(){
instance = this;
}

// Start is called before the first frame update


void Start()
{
for (int i = 0; i < s_audiolist.Length; i++)
{
s_source.Add(new AudioSource());
s_source[i] = gameObject.AddComponent<AudioSource>();
s_source[i].clip = s_audiolist[i];
}
}

public void s_playsound(int s){


s_source[s].Play();
}
}

Anda mungkin juga menyukai