728x90
๋ชจ๋ฐ์ผ ๊ฒ์์์ ์บ๋ฆญํฐ ์ด๋ ๋ฐฉ์์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์๋ค. ์กฐ์ด์คํฑ(Joystick)์ ์ฌ์ฉํ๊ธฐ๋ ํ์ง๋ง, ์กฐ์๊ฐ์ด ๋ถํธํด์ ํ๋ฉด ํฐ์น๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ณ ์๋ ์ถ์ธ๋ผ๊ณ ํ๋ค. PC ๊ฒ์์์๋ LOL์ด๋ ์คํํฌ๋ํํธ ๊ฐ์ ๊ฒฝ์ฐ, ๋ง์ฐ์ค๋ฅผ ํตํด ํ๋ฉด์ ์ํ๋ ์ง์ ์ผ๋ก ์บ๋ฆญํฐ๋ฅผ ์ด๋ ์ํค๋ ๋ฐฉ์์ ์ด๋ค.
์๋ฆฌ
- ์นด๋ฉ๋ผ๊ฐ ๋ณด์ฌ์ฃผ๋ ์์ญ์ ํฐ์น๋ฅผ ํ๋ฉด, Raycast์ฒ๋ผ ๊ฐ์์ ๊ด์ ์ ์๋ค.
- ๊ด์ ์ ๋ฟ์ ๋ฐ๋ฅ์ ์ขํ๊ฐ์ ๋ฐ์๋ด์, ์บ๋ฆญํฐ๋ฅผ ํด๋น ์ขํ๋ก ์ด๋ ์ํจ๋ค.
- ์ฆ, ์คํฌ๋ฆฐ ์ขํ๊ณ์์ ์๋ ์ขํ๊ณ๋ก์ ๊ฐ ๋ณํ ๊ณผ์ ์ด ํ์ํ๋ค.
- ๋ฐ๋ฅ์ ์ฝ๋ผ์ด๋(Collider) ์ปดํฌ๋ํธ๊ฐ ์์ด์ผ ๊ด์ ์ ๋ถ๋ชํ๋ฏ๋ก ๋ฐ๋์ ๋ฃ์ด์ค์ผ ํ๋ค.
- ์ฅ์ ๋ฌผ์ด ์กด์ฌํ๋ค๋ฉด, ๊ธธ์ฐพ๊ธฐ ์๊ณ ๋ฆฌ์ฆ์ ์ถ๊ฐ๋ก ์ ์ฉํด์ค์ผ ํ๋ค. ์๋๋ฉด ๋ค๋น๊ฒ์ด์ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
- ์ฌ ๋ด์ ์๋ ์์ดํ ํด๋ฆญ ์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฒ ํ๋ ๋ฑ์๋ ์์ฉํด์ ์ ์ฉํ ์ ์๋ค.
์คํฌ๋ฆฝํธ(Script)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
public float moveSpeed;
private bool isMove;
private Vector3 destination;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
RaycastHit hit;
if(Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit))
{
Debug.Log($"์ถฉ๋๋ ๋ฌผ์ฒด ์ด๋ฆ : {hit.transform.name}, Position : {hit.point}");
destination = hit.point;
isMove = true;
}
}
Move();
}
private void Move()
{
if (isMove)
{
bool isAlived = Vector3.Distance(destination, transform.position) <= 0.1f;
if (isAlived)
{
isMove = false;
}
else
{
Vector3 direction = destination - transform.position;
transform.forward = direction;
transform.position += direction.normalized * moveSpeed * Time.deltaTime;
}
}
}
}
728x90
๋ฐ์ํ