관리 메뉴

πŸ’»πŸ’­πŸŽ§πŸŒ

μœ λ‹ˆν‹° μž…λ¬Έ κ°•μ’Œ B7~B9 λ³Έλ¬Έ

Unity + C#

μœ λ‹ˆν‹° μž…λ¬Έ κ°•μ’Œ B7~B9

adorableco 2022. 7. 27. 23:36
λ°˜μ‘ν˜•

 

Input : κ²Œμž„ λ‚΄ μž…λ ₯을 κ΄€λ¦¬ν•˜λŠ” 클래슀 (마우슀 μž…λ ₯ λ“±)

 

1. ν‚€ μž…λ ₯

 

anyKeyDown : 아무 μž…λ ₯을 졜초둜 받을 λ•Œ true

anyKey : 아무 μž…λ ₯을 λ°›μœΌλ©΄ true 

GetKey : ν‚€λ³΄λ“œ λ²„νŠΌ μž…λ ₯을 λ°›μœΌλ©΄ true 

(anyKey 와 GetKey λŠ” λˆŒλ €μ„ λ•Œμ™€ 뗐을 λ•ŒλŠ” 포함 μ•ˆν•¨)

KeyCode.Return : ‘μ—”ν„°λ₯Ό μž…λ ₯ν–ˆμ„ λ•Œ’ 와 κ°™μŒ

 

2. 마우슀 μž…λ ₯

 

GetMouse(숫자) : 마우슀 λ²„νŠΌ μž…λ ₯을 λ°›μœΌλ©΄ true

GetMouseButtonDown(숫자) : 마우슀 λ²„νŠΌμ„ ν΄λ¦­ν–ˆμ„ λ•Œ

GetMouseButtonUp(숫자) : 마우슀λ₯Ό ν΄λ¦­ν•˜κ³  뗐을 λ•Œ

 

Project Setting -> Input Manager μ—μ„œ Button μ„€μ • κ°€λŠ₯

 

 

3.λ²„νŠΌ μž…λ ₯ (λ¬Έμžμ—΄ μžλ¦¬μ— Input λ²„νŠΌ 이름 적으면 됨)

 

GetButton(“λ¬Έμžμ—΄”) : Input λ²„νŠΌ μž…λ ₯을 λ°›μœΌλ©΄ true

GetButtonDown(“λ¬Έμžμ—΄”) : Input λ²„νŠΌ μž…λ ₯이 눌리면 true

GetButtonUp(“λ¬Έμžμ—΄”) : Input λ²„νŠΌ μž…λ ₯이 λˆŒλ Έλ‹€ 떼지면 true

 

 

μ˜ˆμ‹œ

if(Input.anyKeyDown)

        Debug.Log("ν”Œλ ˆμ΄μ–΄κ°€ 아무 ν‚€λ₯Ό λˆŒλ €μŠ΅λ‹ˆλ‹€.");



        if(Input.GetKeyDown(KeyCode.Return))

        Debug.Log("μ•„μ΄ν…œμ„ κ΅¬μž…ν•˜μ˜€μŠ΅λ‹ˆλ‹€.");



        if(Input.GetKey(KeyCode.LeftArrow))

            Debug.Log("μ™Όμͺ½μœΌλ‘œ 이동 쀑");

        

        if(Input.GetKeyUp(KeyCode.RightArrow))

            Debug.Log("였λ₯Έμͺ½ 이동을 λ©ˆμΆ”μ—ˆμŠ΅λ‹ˆλ‹€.");

        

        if(Input.GetMouseButtonDown(0))

            Debug.Log("미사일 λ°œμ‚¬");

        

        if(Input.GetMouseButton(0))

            Debug.Log("미사일 λͺ¨μœΌλŠ” 쀑...");



        if(Input.GetMouseButtonUp(0))

            Debug.Log("슈퍼 미사일 λ°œμ‚¬!!");



if(Input.GetButton("Horizontal"))

        {

            Debug.Log("횑 이동 쀑..."+ Input.GetAxisRaw("Horizontal"));

        }

        if(Input.GetButton("Vertical"))

        {

            Debug.Log("μ’… 이동 쀑..."+ Input.GetAxisRaw("Vertical"));

        }

 

 

 

GetAxis : μˆ˜ν‰, 수직 λ²„νŠΌ μž…λ ₯을 λ°›μœΌλ©΄ float

GetAxixRaw : GetAxis와 λ‹€λ₯΄κ²Œ λ”± λ–¨μ–΄μ§€λŠ” 값이 λ‚˜μ˜΄ 1or -1 λ™μ‹œμ— λ²„νŠΌ λˆ„λ₯΄λ©΄ 0이 λ‚˜μ˜¬ λ•Œλ„ 있음.

 

Transform : 였브젝트 ν˜•νƒœμ— λŒ€ν•œ κΈ°λ³Έ μ»΄ν¬λ„ŒνŠΈ

μ˜€λΈŒμ νŠΈλŠ” λ³€μˆ˜ transform을 항상 가지고 있음.

 

Vector2 : 2차원

Vector3 : 3차원

 

<Vector3 클래슀의 λ©”μ†Œλ“œ>

MoveTowards : 등속 이동

->λ§€κ°œλ³€μˆ˜λŠ” (ν˜„μž¬μœ„μΉ˜, λͺ©ν‘œμœ„μΉ˜, 속도)둜 ꡬ성

->κΌ­ Update() ν•¨μˆ˜ μ•ˆμ—μ„œ μ‚¬μš©ν•΄μ•Ό 함

 

SmoothDamp : λΆ€λ“œλŸ¬μš΄ 감속 이동

->λ§€κ°œλ³€μˆ˜λŠ” (ν˜„μž¬μœ„μΉ˜, λͺ©ν‘œμœ„μΉ˜, μ°Έμ‘° 속도, 속도)

->λ§ˆμ§€λ§‰ λ§€κ°œλ³€μˆ˜μ— λ°˜λΉ„λ‘€ν•˜μ—¬ 속도 증가

 

Lerp : μ„ ν˜• 보간, SmoothDamp 보닀 감속 μ‹œκ°„μ΄ κΉ€

->λ§ˆμ§€λ§‰ λ§€κ°œλ³€μˆ˜μ— λΉ„λ‘€ν•˜μ—¬ 속도 증가 (μ΅œλŒ“κ°’ 1)

 

Slerp : ꡬ면 μ„ ν˜• 보간, 호λ₯Ό 그리며 이동 -> 포물선 이동

 

ref  : μ°Έμ‘° μ ‘κ·Ό -> μ‹€μ‹œκ°„μœΌλ‘œ λ°”λ€ŒλŠ” κ°’ 적용 κ°€λŠ₯ 

 

 

transform.position = Vector3.MoveTowards(transform.position,target,1f);


Vector3 velo = Vector3.zero;

transform.position = Vector3.SmoothDamp(transform.position,target,ref velo,0.1f);

transform.position = Vector3.Slerp(transform.position, target, 0.001f);

 

<Time.deltaTime μ‚¬μš©ν•˜λŠ” 방법>

 

deltaTime 값은 ν”„λ ˆμž„μ΄ 적으면 크고, ν”„λ ˆμž„μ΄ 많으면 μž‘μŒ

 

Vector3 vec = new Vector3(Input.GetAxisRaw("Horizontal")*Time.deltaTime,Input.GetAxisRaw("Vertical")*Time.deltaTime,transform.Translate(vec));

 

이런 μ‹μœΌλ‘œ 쑰절

 

 

Translate : 벑터에 κ³±ν•˜κΈ°

transform.translate(Vec*Time.deltaTime);

 

Vector ν•¨μˆ˜ : μ‹œκ°„ λ§€κ°œλ³€μˆ˜μ— κ³±ν•˜κΈ°

Vector3.Lerp(Vec1, Vec2, T*Time.deltaTime);

λ°˜μ‘ν˜•

'Unity + C#' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

μœ λ‹ˆν‹° μž…λ¬Έ κ°•μ’Œ B0~B6  (0) 2022.07.24