๐Ÿโ˜˜๏ธ๐Ÿ๐Ÿฅฌ๐Ÿฅฆ๐ŸŒณ๐ŸŒฒ
์ž‘์„ฑ์ผ
2022. 11. 2. 17:36
์ž‘์„ฑ์ž
ห—ห‹ เญจเญง หŠห—

๋จผ์ € ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฌด๋ธŒ๋จผํŠธ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ–ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฌด๋ธŒ๋จผํŠธ๋Š” ์ฅฌ๋””์˜ ๋“œ๋ ˆ์Šค ์นดํŽ˜๋ฅผ ๋– ์˜ฌ๋ฆฌ๋ฉด ๋œ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๋งˆ์šฐ์Šค์˜ ์ขŒํ‘œ๊ฐ’์„ ๋ฐ›์•„์™€์„œ ์ €์žฅํ•œ ํ›„ ๋ฐ˜ํ™˜ ์‹œํ‚ค๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

๋Œ€์ถฉ ์ด๋ ‡๊ฒŒ ์งœ๋ฉด ๋˜์ง€ ์•Š์„๊นŒ.. ํ•˜๊ณ  ์‹คํ–‰์„ ์‹œ์ผœ๋ดค๋‹ค.

๊ฒฐ๊ณผ๋Š”

ใ…ฃ๊ฒŒ ๋ญ๋…ธ!

ํด๋ฆญํ•œ ์ขŒํ‘œ๋กœ ์ด๋™ํ•˜์งˆ ์•Š๋Š”๋‹ค!

 

๊ตฌ๊ธ€์•„! ๋„์™€์ค˜!

https://youtu.be/T-TvM4IAnJc

์ด ๋™์˜์ƒ์ด ์ž˜ ์„ค๋ช…ํ•ด์คฌ๋‹ค.

์ด๋ฏธ์ง€๊ฐ€ ๋งˆ์šฐ์Šค๊ฐ€ ๋ˆ„๋ฅด๋Š”๋Œ€๋กœ ์ž˜ ์›€์ง์—ฌ์คฌ๋‹ค.

 

์ž”์ƒ์„ ๋‚จ๊ธฐ๋ฉด์„œ ์ด๋™์‹œ์ผœ์ฃผ๋ ค๋ฉด ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋œ๋‹ค.

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๋กœ ๋ฐ”๊พธ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ ํ•ด๋ดค๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ๋œ๋‹ค.

์—ฌํŠผ ํ”Œ๋ ˆ์ด์–ด ์ด๋™์‹œํ‚ค๊ธฐ ์™„๋ฃŒ!