๋จผ์ ํ๋ ์ด์ด์ ๋ฌด๋ธ๋จผํธ๋ถํฐ ์ฒ๋ฆฌํ๋๋ก ํ๋ค. ํ๋ ์ด์ด์ ๋ฌด๋ธ๋จผํธ๋ ์ฅฌ๋์ ๋๋ ์ค ์นดํ๋ฅผ ๋ ์ฌ๋ฆฌ๋ฉด ๋๋ค๊ณ ํ๋ค. ๋ง์ฐ์ค์ ์ขํ๊ฐ์ ๋ฐ์์์ ์ ์ฅํ ํ ๋ฐํ ์ํค๋ฉด ๋๋ค๊ณ ์๊ฐํ๋ค.
๋์ถฉ ์ด๋ ๊ฒ ์ง๋ฉด ๋์ง ์์๊น.. ํ๊ณ ์คํ์ ์์ผ๋ดค๋ค.
๊ฒฐ๊ณผ๋
ํด๋ฆญํ ์ขํ๋ก ์ด๋ํ์ง ์๋๋ค!
๊ตฌ๊ธ์! ๋์์ค!
์ด ๋์์์ด ์ ์ค๋ช ํด์คฌ๋ค.
์ด๋ฏธ์ง๊ฐ ๋ง์ฐ์ค๊ฐ ๋๋ฅด๋๋๋ก ์ ์์ง์ฌ์คฌ๋ค.
์์์ ๋จ๊ธฐ๋ฉด์ ์ด๋์์ผ์ฃผ๋ ค๋ฉด ์ด๋ ๊ฒ ํ๋ฉด ๋๋ค.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerCtrl : MonoBehaviour
{
[SerializeField] float speed = 10f;
Vector3 mousePos, transPos, targetPos;
void Update()
{
if (Input.GetMouseButton(0)) //๋ง์ฐ์ค ์ขํด๋ฆญ์
{
TargetPos();
}
MoveToTarget();
}
void TargetPos()
{
mousePos = Input.mousePosition; //๋ง์ฐ์ค ์์น๊ฐ์ ๋ด์
transPos = Camera.main.ScreenToWorldPoint(mousePos); //์ค๋ธ์ ํธ์ ๋ํ ์๋์ขํ๋ฅผ ํ๋ฉด์ขํ๋ก ๋ณํ
targetPos = new Vector3(transPos.x, transPos.y, 0); //์ด๋์ํค๊ณ ์ ํ๋ ์์น์ ํ๋ฉด์ขํ๋ฅผ ๋ฐํ
}
void MoveToTarget()
{
transform.position = Vector3.MoveTowards(transform.position, targetPos, Time.deltaTime * speed); //๋ถ๋๋ฌ์ด ์ด๋
}
}
๋ง์ฝ ์ ๊ธฐ ScreenToWorldPoint๋ฅผ WorldToScreenPoint๋ก ๋ฐ๊พธ๋ฉด ์ด๋ป๊ฒ ๋ ๊น ํด๋ดค๋๋ฐ ์ด๋ ๊ฒ ๋๋ค.
์ฌํผ ํ๋ ์ด์ด ์ด๋์ํค๊ธฐ ์๋ฃ!
'์ ๋ํฐ > ๋ก๋ณถ์ด ์๋ฐ ๊ฒ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ค๊ฐ๋ฐํ (1) | 2022.11.20 |
---|---|
์ฌ๋กฏ ์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ (0) | 2022.11.19 |
ํด์ผํ ๊ฒ (0) | 2022.11.08 |
๊ฒ์ ํ๋ ์ด ์๊ณ ๋ฆฌ์ฆ ์์ฐ์ด๋ก ์ง๊ธฐ (0) | 2022.11.07 |
์นด๋ฉ๋ผ ๋ฒ์ ์ค์ (0) | 2022.11.03 |