[TIL] 52์ผ์ฐจ - 2D CharacterController

๊น€์œ ์›ยท2024๋…„ 3์›” 8์ผ
0

๐Ÿ“ 24.03.08

์˜ค๋Š˜์˜ ์งˆ๋ฌธ

์ ‘๊ทผ์ œํ•œ์ž๋ž€ ๋ฌด์—‡์ด๋ฉฐ, ๊ฐ๊ฐ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ๋น„๊ตํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋‚˜์˜ ๋‹ต๋ณ€

์ ‘๊ทผ ์ œํ•œ์ž๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์บก์Šํ™”๋ฅผ ์œ„ํ•ด ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์˜ ํƒ€์ž…๊ณผ ๋ฉ”์„œ๋“œ, ์†์„ฑ, ์ด๋ฒคํŠธ ๋“ฑ์˜ ํƒ€์ž… ๋ฉค๋ฒ„๋“ค๋กœ์˜ ์ ‘๊ทผ์„ ์ œํ•œํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์ ‘๊ทผ ์ œํ•œ์ž์˜ ์ข…๋ฅ˜๋กœ๋Š” public, private, protected, internal ์ด ์žˆ์Šต๋‹ˆ๋‹ค. public ์€ ๋ชจ๋“  ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ณ , private๋Š” ์˜ค์ง ๊ฐ™์€ ํด๋ž˜์Šค ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. protected๋Š” ๊ฐ™์€ ํด๋ž˜์Šค๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŒŒ์ƒ ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ณ , internal์€ ๊ฐ™์€ ์–ด์…ˆ๋ธ”๋ฆฌ ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.




3D ๊ธฐ์ค€์˜ ์ƒํƒœ ๋จธ์‹  ๊ตฌ์ƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํƒœ ๋จธ์‹  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์งœ๋‹ˆ ์ ์šฉ์ด ์• ๋งคํ•œ ๋ถ€๋ถ„์ด ๋„ˆ๋ฌด ๋งŽ๋‹ค.

๊ทธ๋ž˜๋„ CharacterController ๋Œ€์‹  PlayerController๋ฅผ ์ด์šฉํ•ด์„œ ์ด๋™ํ•˜๋Š” ๊ฒƒ๊นŒ์ง€๋Š” ์„ฑ๊ณตํ–ˆ๋‹ค.

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

public class PlayerController : MonoBehaviour
{
    public void Move(Vector3 _speed)
    {
        //need Camera Limit
        transform.Translate(_speed);
    }
}

์–ด์ฐจํ”ผ ์ด๋™ speed๋Š” ๋‹ค Player์—์„œ ๊ณ„์‚ฐ๋œ ์ฑ„๋กœ ๋„˜์–ด์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ธŒ์ ํŠธ ์ด๋™๋งŒ์„ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

์ด์Šˆ ๋ฐœ์ƒ

์ด๋™์€ ์„ฑ๊ณตํ–ˆ๋Š”๋ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์—ฐ๊ฒฐ์ด ์ œ๋Œ€๋กœ ์ž‘๋™๋˜์งˆ ์•Š๋Š”๋‹ค. Walk State์—์„œ Exitํ•  ๋•Œ StopAnimation์ด ์ ์šฉ์ด ์•ˆ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

์ด๋™์ด ๋๋‚ฌ์Œ์—๋„ ๊ณ„์†ํ•ด์„œ ๊ฑธ์–ด๊ฐ€๋Š” ๋ชจ์…˜์ด ์ ์šฉ๋˜๊ณ  ์žˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋” ์‚ดํŽด๋ด์•ผ ์™œ ์ ์šฉ์ด ์•ˆ๋˜๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

profile
๊ฐœ๋ฐœ ๊ณต๋ถ€ ๋ธ”๋กœ๊ทธ

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด