๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿง‘‍๐Ÿ’ป ์ฝ”๋”ฉ/Unity

[Practice Unity] ํ”„๋กœํผํ‹ฐ ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ

728x90

1. Property(ํ”„๋กœํผํ‹ฐ)๋ž€ ๋ฌด์—‡์ธ๊ฐ€
ํ”„๋กœํผํ‹ฐ๋Š” ์†์„ฑ์ด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š” C#์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
get์€ ์˜์–ด ๊ทธ๋Œ€๋กœ ๊ฐ’์„ ์–ป์–ด์˜ฌ ๋•Œ(๋ฐ˜ํ™˜) set์€ ๊ฐ’์„ ์„ค์ •ํ•  ๋•Œ(ํ• ๋‹น) ์‚ฌ์šฉํ•˜๊ณ  value๋Š” set ์ ‘๊ทผ์ž๊ฐ€ ํ• ๋‹นํ•˜๋Š” ๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
set๋งŒ ๊ตฌํ˜„ํ•˜๋ฉด ์“ฐ๊ธฐ ์ „์šฉ get๋งŒ ๊ตฌํ˜„ํ•˜๋ฉด ์ฝ๊ธฐ ์ „์šฉ์ž…๋‹ˆ๋‹ค.

2. ์–ด๋””์— ์“ฐ์ด๋Š”๊ฐ€
์™ธ๋ถ€์—์„œ ๊ฐ’์„ ๋ฐ”๊พธ๋Š” ๊ฑด ๋ชปํ•˜๊ฒŒ ํ•˜๊ณ  ์‹ถ์ง€๋งŒ, ๊ฐ’์„ ๋ฐ›์•„๋Š” ์˜ค๊ณ  ์‹ถ์„ ๋•Œ ์›๋ž˜๋Š” ๊ฐ’์„ ๋ฐ›์•„์˜ค๋Š” ํ•จ์ˆ˜๋ฅผ public์œผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค๋“ ๊ฐ€ ํ•˜๋Š” ๋ฐฉ์‹์„ ์จ์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ด๊ฒŒ ํ›จ์”ฌ ๊ฐ„๋‹จํ•ด์ง‘๋‹ˆ๋‹ค.

1
public int Idx { get; private set; }
cs

์œ„์™€ ๊ฐ™์ด set ์ ‘๊ทผ์ž๋งŒ private๋กœ ์„ ์–ธํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์˜ค๋ฅ˜ํ‘œ์‹œ๊ฐ€ ๋œน๋‹ˆ๋‹ค.

PlayerMovement๋ผ๋Š” ์Šคํฌ๋ฆฝํŠธ์—์„œ Idx Property ์„ ์–ธ ํ›„ ๋‹ค๋ฅธ ์Šคํฌ๋ฆฝํŠธ์—์„œ ํ˜ธ์ถœํ•˜๋Š” ์ƒํ™ฉ

 

๋˜ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์„ค์ •ํ•œ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ๋ฒ”์œ„ ๋‚ด์˜๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฐ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public int Hp
    {
        get
        {
            return Hp;
        }
        set
        {
            if (value > 100)
            {
                hp = 100;
            }
            else
            {
                hp = value;
            }
        }
    }
cs

์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ง ๋‹ค๋ฉด hp์— 100์ด ๋„˜๋Š” ๊ฐ’์ด ์ž…๋ ฅ๋˜๋”๋ผ๋„ 100์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์ฃ .

 

๊ทธ๋ฆฌ๊ณ  ์ด๋ฒˆ์— ์ฑ…์œผ๋กœ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋ฐฐ์šด ๊ฑด๋ฐ ๋ฒ„ํŠผ ์ž…๋ ฅ์„ ํ”„๋กœํผํ‹ฐ๋กœ ๋ฐ›์•„์˜ค๋”๊ตฐ์š”. ์ฑ…์— ๋‚˜์˜จ ๋‚ด์šฉ์„ ์กฐ๊ธˆ ์‘์šฉํ•ด์„œ ํ”Œ๋ ˆ์ด์–ด์˜ ์ด๋™์„ ๊ตฌํ˜„ํ•ด ๋ดค์Šต๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
public string moveAxisXName = "Horizontal";
public string moveAxisZName = "Vertical";
 
public float XAxis { get; private set; }
public float ZAxis { get; private set; }
 
void Update()
{
    XAxis = Input.GetAxis(moveAxisXName);
    ZAxis = Input.GetAxis(moveAxisZName);
}
cs
1
2
3
4
5
private void Move()
    {
        Vector3 moveDistance = new Vector3(playerInput.XAxis, 0f, playerInput.ZAxis).normalized * moveSpeed * Time.deltaTime;
        playerRigidbody.MovePosition(playerRigidbody.position + moveDistance);
    }
cs

Property๋ฅผ ์‚ฌ์šฉํ•œ playerInput๊ณผ playerMovement ๊ตฌํ˜„

 

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

* ํ”„๋กœํผํ‹ฐ์— ๊ด€ํ•ด ๊ณต๋ถ€ํ•œ๋‹ค๊ณ  ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ๋ธ”๋กœ๊ทธ๋„ ์ฐพ์•„๋ดค์—ˆ๋Š”๋ฐ '๋ณ€์ˆ˜์™€ ํ”„๋กœํผํ‹ฐ์˜ ์ด๋ฆ„์€ ๊ฐ™์•„์•ผ ํ•˜๊ณ  ๋Œ€ ์†Œ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค'๋ผ๋Š” ๋‚ด์šฉ๋„ ์žˆ๋”๊ตฐ์š”. ์ง์ ‘ ์‹คํ—˜ํ•ด๋ณธ ๊ฒฐ๊ณผ ๋ณ€์ˆ˜์™€ ํ”„๋กœํผํ‹ฐ์˜ ์ด๋ฆ„์ด ๊ฐ™์„ ํ•„์š”๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
* ์ด ๊ธ€์€ ๊ฐœ์ธ ๊ณต๋ถ€์šฉ ๊ธฐ๋ก์œผ๋กœ ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค:)

728x90