Modul Unity 7
Modul Unity 7
2. Tambahkan gambar objek pintu dan switch pada direktori Door tersebut yang sudah
disediakan pada folder Google Drive.
60 | P a g e
3. Tambahkan door dan switch tersebut ke Scene game dengan drag and drop gambar
ke Scene game. Ganti nama gambar tersebut pada bagian Hierarchy dengan nama
“door” dan “switch”. Sesuaikan posisi dan ukurannya yang dapat ditentukan pada
bagian Transform.
4. Buka direktori Assets\Script. Tambahkan script baru pada direktori tersebut dengan
nama DoorBehaviour dan SwitchBehaviour, yang digunakan untuk mengatur pintu
dan switch. Drag and drop script DoorBehaviour tersebut ke game object door dan
drag and drop script SwitchBehaviour tersebut ke game object switch.
61 | P a g e
5. Buka script DoorBehaviour dengan menggunakan code editor, kemudian ketikkan
script di bawah ini untuk pergerakan karakter.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
void Awake()
{
_doorClosedPos = transform.position;
_doorOpenPos = new Vector3(transform.position.x + -2.5f,
transform.position.y, transform.position.z);
}
void Update()
{
if (_isDoorOpen)
{
OpenDoor();
}
else if (!_isDoorOpen)
{
CloseDoor();
}
}
void OpenDoor()
{
if (transform.position != _doorOpenPos)
{
transform.position =
Vector3.MoveTowards(transform.position, _doorOpenPos, _doorSpeed *
Time.deltaTime);
StartCoroutine(ResetSceneAfterDelay(2.0f));
}
}
62 | P a g e
void CloseDoor()
{
if (transform.position != _doorClosedPos)
{
transform.position =
Vector3.MoveTowards(transform.position, _doorClosedPos, _doorSpeed
* Time.deltaTime);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
float _switchSizeY;
Vector3 _switchUpPos;
Vector3 _switchDownPos;
float _switchSpeed = 1f;
float _switchDelay = 0.2f;
bool _isPressingSwitch = false;
void Awake()
{
63 | P a g e
_switchSizeY = transform.localScale.y / 10;
_switchUpPos = transform.position;
_switchDownPos = new Vector3(transform.position.x,
transform.position.y - _switchSizeY,
transform.position.z);
}
void Update()
{
if (_isPressingSwitch)
{
MoveSwitchDown();
}
else if (!_isPressingSwitch)
{
MoveSwitchUp();
}
}
void MoveSwitchDown()
{
if (transform.position != _switchDownPos)
{
transform.position =
Vector3.MoveTowards(transform.position, _switchDownPos,
_switchSpeed * Time.deltaTime);
}
}
void MoveSwitchUp()
{
if (transform.position != _switchUpPos)
{
transform.position =
Vector3.MoveTowards(transform.position, _switchUpPos, _switchSpeed
* Time.deltaTime);
}
}
if (HasRequiredItem(_requiredItem))
64 | P a g e
{
if (_isDoorOpenSwitch &&
!_doorBehaviour._isDoorOpen)
{
_doorBehaviour._isDoorOpen =
!_doorBehaviour._isDoorOpen;
}
else
{
return false;
}
}
}
65 | P a g e
7. Pilih pada game object switch. Tambahkan dua komponen baru yaitu Box Collider
2D. Pada Box Collider 2D yang pertama ditambahkan Offset Y = 0.02 dan centang
pada Is Trigger.
8. Pilih pada game object switch. Tambahkan dua komponen baru yaitu Box Collider
2D dan Platform Effector 2D. Pada komponen Box Collider 2D, centang pada Used
by Effector.
66 | P a g e
9. Setelah source code untuk SwitchBehaviour dibuat, drag and drop game object
door ke Switch Behaviour bagian Door Behaviour dan centang pada Is Door Open
Switch dan Is Door Close Switch.
67 | P a g e