Tujuan
Tutorial ini membahas pola yang sangat berguna: membaca klik di lantai lalu menggerakkan karakter ke titik itu dengan cara yang jelas dan terkontrol.

Gunakan ScreenPointToRay, Physics.Raycast, dan MoveTowards untuk membuat controller click-to-move yang mudah dipahami.
Ringkasan pelajaran
Tutorial ini membahas pola yang sangat berguna: membaca klik di lantai lalu menggerakkan karakter ke titik itu dengan cara yang jelas dan terkontrol.
30-40 min / Pemula
Klik di lantai menentukan tujuan berikutnya.
Sebelum mulai
Pelajaran lebih mudah diikuti ketika kamu tahu apa yang harus terlihat di layar dan apa yang dianggap selesai.
Tutorial ini membahas pola yang sangat berguna: membaca klik di lantai lalu menggerakkan karakter ke titik itu dengan cara yang jelas dan terkontrol.
Ubah posisi klik layar menjadi ray 3D dengan Camera.main.ScreenPointToRay lalu deteksi lantai dengan Physics.Raycast.
Klik di lantai menentukan tujuan berikutnya.
using UnityEngine;
public class ClickMoveController : MonoBehaviour
{
[SerializeField] private float moveSpeed = 5f;
[SerializeField] private LayerMask groundLayer;
private Vector3 targetPosition;
private bool hasTarget;
private void Start()
{
targetPosition = transform.position;
}
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out RaycastHit hit, 100f, groundLayer))
{
targetPosition = hit.point;
hasTarget = true;
}
}
if (!hasTarget) return;
transform.position = Vector3.MoveTowards(
transform.position,
new Vector3(targetPosition.x, transform.position.y, targetPosition.z),
moveSpeed * Time.deltaTime
);
}
}