Unity/Unity(๊ธฐ์ดˆ)

unity ์ƒํ•˜์ขŒ์šฐ ์ฝ”๋“œ 2๊ฐ€์ง€ Input.GetKey vs Input.GetAxis ๊ทธ๋ฆฌ๊ณ  Translate() ํ•จ์ˆ˜์˜ ํ™œ์šฉ

Rainbow๐ŸŒˆCoder 2021. 8. 12. 13:29
728x90

<๋‹จ์ˆœํ•œ ์ƒํ•˜์ขŒ์šฐ>//๋ ˆํŠธ๋กœ๋А๋‚Œ์˜ ํ”ฝ์…€๊ฒŒ์ž„์—์„œ ๋งŽ์ด ๋ณด์ด๋Š” ๋ฌด๋น™์Šค๋Ÿฝ๋‹ค

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MOVE : MonoBehaviour
{
    Transform tr;

    void Update()
    {
        tr = GetComponent<Transform>();
        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            tr.position = new Vector3(tr.position.x, tr.position.y + 1, tr.position.z);
        }
        if (Input.GetKeyDown(KeyCode.DownArrow))
        {
            tr.position = new Vector3(tr.position.x, tr.position.y - 1, tr.position.z);
        }
        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            tr.position = new Vector3(tr.position.x -1, tr.position.y, tr.position.z);
        }
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            tr.position = new Vector3(tr.position.x + 1, tr.position.y, tr.position.z);
        }
    }
}

 

 

<translate ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์ƒํ•˜์ขŒ์šฐ์ด๋™>//๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„ ์›์‹ ์˜ ๋ฌด๋น™๊ณผ ๋น„์Šทํ•˜๋‹ค๊ณ  ๋А๋‚Œ.

But.. Input.GetAxis๋Š” ํ‚ค๋ณด๋“œ์—์„œ๋งŒ ๋จนํžˆ๋Š” ๋ช…๋ น์–ด๋ผ์„œ ํ„ฐ์น˜(ํด๋ฆญ)๊ธฐ๋ฐ˜์˜ ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ์•ˆ ๋จนํžŒ๋‹ค.

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MOVE : MonoBehaviour
{
    Transform tr;

    void Update()
    {
        tr = GetComponent<Transform>();
        float x = Input.GetAxis("Horizontal")*0.05f;
        float y= Input.GetAxis("Vertical") * 0.05f;
        tr.Translate(new Vector2(x, y));
    }
}

์œ„์˜ ํ•จ์ˆ˜์—์„œ๋Š” ๊ฐ๊ฐ x์™€ y๋ณ€์ˆ˜์— Input.GetAxis() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ€๋กœ์ถ•๊ณผ ์„ธ๋กœ์ถ•์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.
(๊ฒŒ์ž„๊ธฐ ๋“ฑ์˜ ์ด๋™์— ์‚ฌ์šฉํ•˜๋Š” ์•„๋‚ ๋กœ๊ทธ ์Šคํ‹ฑ์—์„œ ๊ฐ€์ ธ์˜จ ๊ฐœ๋…)
Translate() ํ•จ์ˆ˜๋Š” ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์˜ ์œ„์น˜์—์„œ Translate() ํ•จ์ˆ˜์— ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์„ ํ˜„์žฌ ์ขŒํ‘œ ๊ฐ’์— ๋”ํ•˜๋„๋ก ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

 

Translate() ํ•จ์ˆ˜์™€ transform.position์˜ ์ฐจ์ด์ 

์ผ๋‹จ ๋ˆˆ์— ๋„๋Š” ์ฐจ์ด์ ์€ Translate๋Š” ํ•จ์ˆ˜ ๊ทธ์ž์ฒด๋ผ์„œ ํ•จ์ˆ˜ ์•ˆ์— Vector๊ฐ’์„ ์ธ์ˆ˜๋กœ ๋„ฃ๋Š” ์‹์ด๊ณ 

transform.position์€ Vector๊ฐ’์„ ๋Œ€์ž…ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

๋˜ํ•œ 

Translate๋Š” ์˜ค๋ธŒ์ ํŠธ ์ž์‹ ์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ์ง€์ •ํ•œ ์ขŒํ‘œ๋กœ ํ–ฅํ•˜๋Š” ์ ์ง„์ ์ธ ์›€์ง์ž„์„ ๋งŒ๋“ค์–ด๋‚ด๊ณ 

transform.position์€ ์ขŒํ‘œ์˜ ์ ˆ๋Œ€ ์œ„์น˜๋ณ„๋กœ ๋œจ๋Š” ๊ฐ’์ด๋ฏ€๋กœ ๋ฐ”๋กœ ์ง€์ •ํ•œ ์ขŒํ‘œ๋กœ ๋‚˜ํƒ€๋‚˜๊ฒŒ ํ•œ๋‹ค.

์ „์ž๊ฐ€ ๋™์ ์ธ ์ด๋™ ๊ฐœ๋…์ด๋ผ๋ฉด ํ›„์ž๋Š” ์ •์ ์ธ ํ…”๋ ˆํฌํŠธ๊ฐ™์€ ๋А๋‚Œ์ด๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ์‰ฝ๋‹ค.

728x90