[4].1 ๋ฉ์๋ ๋ง๋ค๊ธฐ |
[4].2 ํด๋์ค ๋ง๋ค๊ธฐ |
[4].3 Vector ํด๋์ค ์ฌ์ฉํ๊ธฐ |
[4].1 ๋ฉ์๋ ๋ง๋ค๊ธฐ
>> ๋ฉ์๋
- ์คํฌ๋ฆฝํธ๊ฐ ๋์์ด ๊ธธ์ด์ง ๋, ๊ธธ์ด์ง ์ฒ๋ฆฌ๋ฅผ ์๋ฏธ๊ฐ ์๋ ์ฒ๋ฆฌ ๋ธ๋ก์ผ๋ก ๋ถํดํ๊ณ ์ด๋ฆ์ ๋ถ์ด๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ ๋ค.
- ์ด๋ ๊ฒ ๋ถํดํ ๊ฐ ์ฒ๋ฆฌ๋ฅผ ๋ฉ์๋(๋๋ ํจ์)๋ผ๊ณ ํจ
- ๋ฉ์๋์ ์ญํ : ์ฒ๋ฆฌ๋ฅผ ๊ธฐ๋ฅ ๋จ์๋ก ๋ฌถ๋ ์ญํ ์ธ์๋ ๋ฉ์๋์ ๊ฐ์ ์ ๋ฌํด์ ๊ณ์ฐํ๊ฑฐ๋ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค๋ฐ์ ์ ์๋๋ก ํจ
- ์ธ์: ๋ฉ์๋๋ก ๊ฑด๋ค๋ ๊ฐ, ๋ฐํ๊ฐ: ๋ฉ์๋์์ ๋๋ ค๋ฐ๋ ๊ฐ
- ์ธ์๋ ์ฌ๋ฌ ๊ฐ ๊ฑด๋ฌ ์ ์์ง๋ง ๋ฐํ๊ฐ์ ํ ๊ฐ๋ก ์ ํด์ ธ ์์
๐๋ด๊ฐ ์ฐพ์๋ณธ ๋ด์ฉ
- ๋ฉ์๋๋ ์ผ๋ จ์ ๋ฌธ์ ํฌํจํ๋ ์ฝ๋ ๋ธ๋ก์ ๋๋ค.
- ์ผ๋ จ์ ์ฝ๋๋ฅผ ํ๋์ ์ด๋ฆ ์๋ ๋ฌถ์ ๊ฒ
- ๋ฉ์๋(๋ฉ์๋)๋ C/C++์์๋ ํจ์, ํ์ค์นผ์์๋ ํ๋ก์์ ธ ๋ฑ์ผ๋ก ๋ถ๋ฆ
>> ๋ฉ์๋๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ
- ๋ฐํ๊ฐ์ ๋ฐ์ดํฐ ํ์๋ ํธ์ถ์์ ๋ฉ์๋๋ก ๋ฐํํ๋ ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ง์ ํจ
- ์ง์ ํ ๋ฐ์ดํฐ ํ์ ๋ณ์์ ๋ฐ์ดํฐ ํ๊ณผ ๊ฐ์
- ๊ฐ์ ๋ฐํํ์ง ์๋ ๋ฉ์๋์๋ void๋ฅผ ์ง์ ํจ
- void์ ์๋ฏธ: '๋ฐํ๊ฐ์ด ์์'
- ์ธ์๋ ํธ์ถ์์ ๋ฉ์๋์์ ๋ฐ์ ๊ฐ์
- ๋ฉ์๋๋ ์ธ์ ๊ฐ์ ์ฌ์ฉํด์ ์ฒ๋ฆฌ๋ฅผ ์คํํจ
- ์ธ์๋ฅผ ๊ฐ์ง ์๋ ๋ฉ์๋๋ ์๋๋ฐ ์ด๋๋ ๋ฉ์๋๋ช ๋ค์ ๋ถ๋ ๊ดํธ ์์ ๊ณต๋ฐฑ์ผ๋ก ๋น์
- ํธ์ถํ๋ ๋ฉ์๋๋ช ์ ์ด์ด ๊ดํธ ์์ ์ ๋ฌํ๋ ์ธ์๋ฅผ ๊ธฐ์ ํจ
- ์ธ์๊ฐ ์ฌ๋ฌ ๊ฐ๋ฉด ์ผํ(,)๋ก ๊ตฌ๋ถํจ
>> โญโ ์ธ์๋ ๋ฐํ๊ฐ๋ ์๋ ๋ฉ์๋โญ
- ์ฝ๋: Console ์ฐฝ์ Hello๋ฅผ ์ถ๋ ฅํ๋ ๋ฉ์๋
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void SayHello()
{
Debug.Log("Hello");
}
void Start()
{
SayHello();
}
}
\ ์ถ๋ ฅ ๊ฒฐ๊ณผ /
Hello
>> ๋ฉ์๋ ์์ฑ ๋ฐฉ๋ฒ
- 7~10๋ฒ ์ค์ด Console ์ฐฝ์ ๋ฌธ์๋ฅผ ์ถ๋ ฅํ๋ SayHello ๋ฉ์๋์
- ์ด ๋ฉ์๋๋ Console ์ฐฝ์ ๋ฌธ์๋ฅผ ์ถ๋ ฅํ ๋ฟ ํธ์ถ์์ ๊ฐ์ ๋ฐํํ์ง ์์ผ๋ฏ๋ก(๋ฐํ๊ฐ์ ๊ฐ์ง ์์), ๋ฐํ๊ฐ์ ๋ฐ์ดํฐ ํ์ void๋ฅผ ์ง์ ํจ
- ์ธ์๊ฐ ์์ผ๋ฏ๋ก ๋ฉ์๋๋ช ๋ค์ ๋ถ๋ ๊ดํธ ์์ ๊ณต๋ฐฑ์ผ๋ก ๋น์
- ๊ณ์ํด์ ์ค๊ดํธ ์์ ์คํํ ์ฒ๋ฆฌ๋ฅผ ์์ฑํจ
- ์ฌ๊ธฐ์๋ Debug.Log๋ฅผ ์ฌ์ฉํด์ Console ์ฐฝ์ Hello๋ฅผ ์ถ๋ ฅํจ
- SayHello ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์์น๋ Start ๋ฉ์๋๋ฅผ ๋ฒ์ด๋๋๋ผ๋ Test ํด๋์ค์ ์ค๊ดํธ ์(7~15๋ฒ ์ค)์ด๋ผ๋ฉด ์ด๋๋ ์๊ด์์
>> ๋ฉ์๋ ํธ์ถ ๋ฐฉ๋ฒ
- Start ๋ฉ์๋์์ SayHello ๋ฉ์๋๋ฅผ ํธ์ถํจ(14๋ฒ ์ค)
- ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ค๋ฉด ๋ฉ์๋๋ช ์ ์ด์ด ์ ๋ฌํ๊ณ ์ถ์ ์ธ์๋ฅผ ์
- ์ด ์์ ์์๋ SayHello ๋ฉ์๋์ ์ธ์๊ฐ ์์ผ๋ฏ๋ก ๊ดํธ ์์ ๊ณต๋ฐฑ์ผ๋ก ๋น์
- ์ฌ๊ธฐ์ ์์ฑํ SayHello ๋ฉ์๋๋ Start ๋ฉ์๋๊ฐ Update ๋ฉ์๋์์ ํธ์ถ๋ ๋๊น์ง๋ ์ฒ๋ฆฌ๊ฐ ์คํ๋์ง ์์
- ์์ฑํ ๋ฉ์๋๋ ํธ์ถํด์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๊ธฐ์ตํด๋์
>> โญโก ์ธ์๊ฐ ์๋ ๋ฉ์๋โญ
- ์ฝ๋: ์ธ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฉ์๋
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void CallName(string name)
{
Debug.Log("Hello" + name);
}
void Start()
{
CallName("Tom");
}
}
\ ์ถ๋ ฅ ๊ฒฐ๊ณผ /
Hello Tom
>> ๋ฉ์๋ ์์ฑ ๋ฐฉ๋ฒ
- 10๋ฒ ์ค์ด CallName ๋ฉ์๋์
- CallName ๋ฉ์๋์๋ ๋ฐํ๊ฐ์ด ์์ผ๋ฏ๋ก void๋ฅผ ์ง์ ํจ
- ๋ฌธ์์ด์ ์ธ์๋ก ๋ฐ์ผ๋ฏ๋ก ๋ฉ์๋๋ช ์ ์ด์ด ๊ดํธ ์์ stringํ์ name ๋ณ์๋ฅผ ์ ์ธํจ
>> ๋ฉ์๋ ํธ์ถ ๋ฐฉ๋ฒ
- 14๋ฒ ์ค์์ CallName ๋ฉ์๋๋ฅผ ํธ์ถํจ
- ๋ฉ์๋๋ช CallName์ ์ด์ด ๊ดํธ ์์ ๋ฉ์๋๋ก ์ ๋ฌํ๋ ์ด๋ฆ(๋ฌธ์์ด)์ ์
- CallName ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์ธ์์ ๋ฌธ์์ด์ธ "Tom"์ด ์๋์ผ๋ก ๋ฉ์๋ ์์ name ๋ณ์์ ๋์ ๋จ
- name ๋ฉ์๋๋ ๋ฉ์๋์์ ๋ณ์์ฒ๋ผ ์ธ ์ ์์ผ๋ฏ๋ก Debug.Log๋ฅผ ์จ์ name ๋ณ์ ๊ฐ์ ์ถ๋ ฅํจ
>> ์ธ์ ํ์ ์ฃผ์ํ๋ค!
- 14๋ฒ ์ค์์ ์ธ์๋ฅผ ์ง์ ํ์ง ์๊ณ CallName();์ผ๋ก ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํจ
- ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ์ ์๋ ํธ์ถ๋๋ ์ชฝ๊ณผ ํธ์ถํ๋ ์ชฝ์ด ์ผ์นํด์ผ ํจ
>> โญโข ์ธ์์ ๋ฐํ๊ฐ์ด ์๋ ๋ฉ์๋โญ
- ์ด๋ฒ์ ์ดํด๋ณผ ์์ ๋ ์ธ์๋ก ๋ณ์๋ฅผ ๋ ๊ฐ ๋ฐ๊ณ , ๋ ๋ณ์์ ํฉ๊ณ๋ฅผ ๋ฐํํ๋ Add ๋ฉ์๋์
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
int Add(int a, int b)
{
int c = a + b;
return c;
}
void Start()
{
int answer;
answer = Add(2, 3);
Debug.Log(answer);
}
}
\ ์ถ๋ ฅ ๊ฒฐ๊ณผ /
5
>> ๋ฉ์๋ ์์ฑ ๋ฐฉ๋ฒ
- 7~11๋ฒ ์ค์ ์ด๋ฒ์ ์์ฑํ Add ๋ฉ์๋์
- ๋ฉ์๋์ ๋ฐํ๊ฐ์ intํ ์ธ์๋ฅผ ํฉํ ๊ฒ์ด๋ฏ๋ก intํ์ผ๋ก ์ง์ ํจ
- Add ๋ฉ์๋๋ ์ธ์๊ฐ ๋ ๊ฐ์ด๋ฏ๋ก ๊ฐ ์ธ์๋ฅผ ์ผํ(,)๋ก ๊ตฌ๋ถํด ์ ์ธํจ
- 10๋ฒ ์ค์์ ์ธ์์ ํฉ๊ณ๋ฅผ ๋ฐํ๊ฐ์ผ๋ก ๋๋ ค์ค์ผ ํ๋ฏ๋ก return ๋ฌธ์ ์
- return ๋ฌธ ๋ค์ ๊ณต๋ฐฑ์ ๋๊ณ ๋ณ์๋ช ์ ์ ์ผ๋ฉด ๊ทธ ๋ณ์ ๊ฐ์ ๋ฉ์๋๋ฅผ ํธ์ถํ ๊ณณ์ผ๋ก ๋ฐํํ ์ ์์
>> ๋ฉ์๋ ํธ์ถ ๋ฐฉ๋ฒ
- Add ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ํ๋ฆ์ ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์
- ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ์ชฝ์์๋ ๋ฉ์๋๋ช ์ ์ด์ด ์ธ์๋ฅผ ๋ ๊ฐ(2์ 3) ์ ๋ฌํจ
- ๋ฉ์๋ ํธ์ถ๊ณผ ๋์์ a์ b ๋ณ์์๋ ๊ฐ๊ฐ 2์ 3์ด ๋์ ๋จ
- a์ b ๋ณ์์๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๊ณณ์์ ์ง์ ํ ์์๋๋ก ๊ฐ์ด ๋์ ๋จ
- Ad(2, 3)์ด ์๋ Add(3, 2)๋ฅผ ์ฐ๋ฉด a ๋ณ์์ 3์ด ๋์ ๋๊ณ b ๋ณ์์ 2๊ฐ ๋์ ๋จ
- ๋ฉ์๋์์๋ a์ b ๋ณ์๋ฅผ ํฉํ ๊ฐ์ c ๋ณ์์ ๋์ ํ๊ณ return ๋ฌธ์ ์ฌ์ฉํด์ ํฉ๊ณ๋ฅผ ํธ์ถํ ๊ณณ์ผ๋ก ๋ฐํํจ
- ๋ฉ์๋๋ฅผ ์คํํ ํ์๋ ๋ฉ์๋์ ํธ์ถ ๋ถ๋ถ์ด ๋ฐํ๊ฐ์ผ๋ก ๋ฐ๋๋ ํํ์
- Add(2, 3) ๋ถ๋ถ์ด ๋ฐํ๊ฐ c ๊ฐ์ผ๋ก ๋ฐ๋๊ธฐ ๋๋ฌธ์ answer = Add(2, 3);์ answer = c;์ด ๋๊ณ answer์ c ๊ฐ์ด ๋์ ๋จ
[4].2 ํด๋์ค ๋ง๋ค๊ธฐ
>> ํด๋์ค
- ๋ฉ์๋ : ์ฒ๋ฆฌ๋ฅผ ๋ชจ์ ๋ ๊ฒ
- ํด๋์ค : ๋ฉ์๋์ ๋ณ์๋ฅผ ๋ชจ์ ๋ ๊ฒ
- ์ ๋ํฐ๋ก ๊ฒ์์ ๋ง๋ค๋ ค๋ฉด ํ๋ ์ด์ด, ์ , ๋ฌด๊ธฐ, ์์ดํ ๋ฑ ๋ฌผ์ฒด๋ง๋ค ๊ทธ ์์ง์์ ์ ์ํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด์ผ ํจ
- ์ด๋๋ '์ฒ๋ฆฌ ๋จ์'๋ณด๋ค๋ '๋ฌผ๊ฑด ๋จ์'๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ํธ๋ฆฌํจ
- ๋ณ์์ ๋ฉ์๋๋ฅผ ํ๋๋ก ํฉ์น์ง ์๊ณ ๋ฐ๋ก๋ฐ๋ก ๊ตฌํํ๋ฉด ์ด๋ ๋ณ์์ ๋ฉ์๋๊ฐ ์ฐ๊ฒฐ๋์ด ์๋์ง ์๊ธฐ ์ด๋ ค์
- ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๊ด๊ณ๊ฐ ์๋ ๋ณ์์ ๋ฉ์๋๋ฅผ ํ๋๋ก ํฉ์น ์ ์์ผ๋ฏ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ฌ์
- class ํค์๋ ๋ค์์ ํด๋์ค๋ช ์ ์ฐ๊ณ , ๊ทธ ์์ ํด๋์ค์์ ์ฌ์ฉํ๋ ๋ณ์์ ๋ฉ์๋๋ฅผ ์
- ํด๋์ค์์ ์ฌ์ฉํ ๋ณ์๋ฅผ ๋ฉค๋ฒ ๋ณ์, ํด๋์ค์์ ์ฌ์ฉํ ๋ฉ์๋๋ฅผ ๋ฉค๋ฒ ๋ฉ์๋๋ผ๊ณ ํจ
- ์์ฑํ ํด๋์ค๋ int๋ string ๋ฑ ๋ฐ์ดํฐ ํ์ผ๋ก ์ฌ์ฉํ ์ ์์
- ์ฆ. Player ํด๋์ค๋ฅผ ๋ง๋ค๋ฉด Playerํ์ ์ฌ์ฉํ ์ ์๊ฒ ๋จ
- int num;์ ์ฐ๋ฉด intํ์ num ๋ณ์๋ฅผ ๋ง๋ค ์ ์์
- Player myPlayer;์ ์ฐ๋ฉด Playerํ์ myPlayer ๋ณ์๋ฅผ ๋ง๋ค ์ ์์
- ์ด ์ํ์์ myPlayer ๋ณ์์ ์์ ์์ ๋น์ด ์์
- intํ์ num ๋ณ์์๋ 2๋ 1500 ๊ฐ์ ์ซ์๋ฅผ ๋์ ํจ
- Playerํ์ myPlayer ๋ณ์์๋ ํ๋ ์ด์ด์ ์ค์ฒด๋ฅผ ๋์ ํจ โญ
- ์ด ์ค์ฒด๋ฅผ ์ธ์คํด์ค๋ผ๊ณ ํจ โญ
- myPlayer ๋ณ์๊ฐ ๊ฐ์ง ๋ฉค๋ฒ ๋ฉ์๋๋ ๋ฉค๋ฒ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด myPlayer;๋ฉค๋ฒ ๋ฉ์๋๋ช (๋๋ ๋ฉค๋ฒ ๋ณ์๋ช )์ ์
- ์์ผ๋ก ๋ง์นจํ(.)๋ก ์ฐ๊ฒฐ๋ ํํ๊ฐ ์์ฃผ ๋์ด
- OO.xx๊ฐ ๋์ค๋ฉด OO ํด๋์ค๊ฐ ๊ฐ๋ xx ๋ฉ์๋(๋๋ ๋ณ์)๋ฅผ ์ฌ์ฉํ๋ค๊ณ ์ดํดํด ๋์
>> ์ ๋ํฐ๊ฐ ์ ๊ณตํ๋ ํด๋์ค๋ ์๋ค!
- ์ง์ ํด๋์ค๋ฅผ ๋ง๋ค ์๋ ์์ง๋ง ์ ๋ํฐ๊ฐ ์ฒ์๋ถํฐ ์ ๊ณตํ๋ ํด๋์ค๋ ์์
- Vector ํด๋์ค์ ๋ก๊ทธ ํ์๋ฅผ ํ ๋ ์ฐ๋ Debug ํด๋์ค ๋ฑ์ด ์ ๋ํฐ๊ฐ ์ ๊ณตํ๋ ํด๋์ค์
- ์ ๋ํฐ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํด๋์ค ๊ฐ๋ ์ ์ ๋๋ก ์ดํดํ๋ ๊ฒ์ด ์ค์ํจ
[4].2 ํด๋์ค ๋ง๋ค๊ธฐ
>> ํด๋์ค ์์ฑํ๊ธฐ
- ์ง๊ธ๊น์ง ์จ ์จ Test ์คํฌ๋ฆฝํธ(Test.cs)์ Player ํด๋์ค๋ฅผ ์ถ๊ฐํจ
- Player ํด๋์ค๋ Test ํด๋์ค ์ธ๋ถ์ ์ถ๊ฐํ๋ ๊ฒ์ ์ฃผ์ํจ
๐ฅ๏ธ ์ฝ๋: Player ํด๋์ค ๊ตฌํํ๊ธฐ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player
{
private int hp = 100;
private int power = 50;
public void Attack()
{
Debug.Log(this.power + "๋ฐ๋ฏธ์ง๋ฅผ ์
ํ๋ค");
{
public void Damage(int damage)
this.hp -= damage;
Debug.Log(damage + "๋ฐ๋ฏธ์ง๋ฅผ ์
์๋ค");
}
}
public class Test : MonoBehaviour
{
void Start()
{
Player myPlayer = new Player();
myPlayer.Attack();
myPlayer.Damage(30);
}
}
\ ์ถ๋ ฅ ๊ฒฐ๊ณผ /
50 ๋ฐ๋ฏธ์ง๋ฅผ ์ ํ๋ค
30 ๋ฐ๋ฏธ์ง๋ฅผ ์ ์๋ค
โ๏ธ (5๋ฒ ์ค) Player ํด๋์ค๋ public ์ ์ธ์ ํ๊ธฐ ๋๋ฌธ์ ์ธ๋ถ ํด๋์ค์์ ์ฌ์ฉํ ์ ์์
โ๏ธ ๋ง์ฝ public์ ๋ถ์ด์ง ์์ผ๋ฉด private๊ฐ ์๋์ผ๋ก ์ค์ ๋๊ธฐ ๋๋ฌธ์ public์ ์ฌ์ฉํ๊ณ ์ถ์ ๋๋ ๊ผญ ๋ถ์ฌ์ค๋ค!
โ๏ธ (7, 8๋ฒ ์ค) private ์ ์ธ์ ํ๊ธฐ ๋๋ฌธ์ ์ธ๋ถ ํด๋์ค์์๋ hp์ power๋ผ๋ ๋ณ์์ ์ ๊ทผ์ ํ ์ ์๊ฒ ๋๊ณ , ๋ง์ฝ ์ ๊ทผํ๋ ค๊ณ ํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํจ, Player ํด๋์ค ์์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
โ๏ธ (10๋ฒ ์ค) Attack ์์ public์ ๋ถ์ฌ์ฃผ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํด๋์ค์์๋ ์ฌ์ฉ ๊ฐ๋ฅํจ
โ๏ธ
- 5~20๋ฒ ์ค์ด ์ด๋ฒ์ ์์ฑํ Player ํด๋์ค์
- ํด๋์ค ๊ตฌ์ฑ์ ๊ฐ๋จํ ์ดํด๋ณด๋ฉด 5๋ฒ ์ค์์ Player ํด๋์ค๋ฅผ ์ ์ธํจ
- 7~8๋ฒ ์ค์์ ํ๋ ์ด์ด์ HP๋ฅผ ๋ํ๋ด๋ ๋ฉค๋ฒ ๋ณ์(power)๋ฅผ ์ ์ธํจ
- 10~19๋ฒ ์ค์์๋ ๊ณต๊ฒฉํ๋ ๋ฉค๋ฒ ๋ฉ์๋(Attack)์ ๋ฐ๋ฏธ์ง๋ฅผ ๋ฐ๋ ๋ฉค๋ฒ ๋ฉ์๋(Damage)๋ฅผ ์์ฑํจ
>> ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- ์ฝ๋ 2~29์ Start ๋ฉ์๋์ ์๋ 26~28๋ฒ ์ค์์๋ ๋ฐฉ๊ธ ์์ฑํ Player ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํจ
- ๋จผ์ 26๋ฒ ์ค์ ์ผ์ชฝ์ Player myPlayer๋ฅผ ์จ์ Playerํ์ myPlayer ๋ณ์๋ฅผ ์ ์ธํจ
- ์ด ๋จ๊ณ์์๋ Playerํ์ ์์๋ฅผ ๋ง๋ค์์ ๋ฟ์ด๋ฏ๋ก Playerํ์ ์ค์ฒด์ธ ์ธ์คํด์ค๋ฅผ ์์ฑํด ๋์ ํด์ผ ํจ
- ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด new ํค์๋ ๋ค์์ ํด๋์ค ์ด๋ฆ()์ ์(26๋ฒ ์ค์ ์ค๋ฅธ์ชฝ)
- Player ํด๋์ค์ ์ธ์คํด์ค๊ฐ ๋ง๋ค์ด์ง๊ณ ์ด๊ฒ์ myPlayer ๋ณ์ ์์ ๋์ ํจ
- 27๋ฒ ์ค์์๋ ์ธ์คํด์ค๋ฅผ ๊ฐ์ง Attack ๋ฉ์๋๋ฅผ myPlayer.Attack()์ธ ๋ณ์๋ช .๋ฉค๋ฒ ๋ฉ์๋๋ช () ํํ๋ก ํธ์ถํจ
- ๋ง์ฐฌ๊ฐ์ง๋ก 28๋ฒ ์ค์์๋ Damage ๋ฉ์๋๋ฅผ ํธ์ถํจ
- ์คํ ๋๊ตฌ๋ฅผ ํด๋ฆญํด Console ์ฐฝ์ ๋ฌด์์ด ์ถ๋ ฅ๋๋์ง ํ์ธํจ
>> ์ ๊ทผ ์์์
- ์ฝ๋ 2~29๋ฅผ ๋ณด๋ฉด Player ํด๋์ค์ ๋ฉค๋ฒ ๋ณ์์ ๋ฉค๋ฒ ๋ฉ์๋ ์์ public์ด๋ private ํค์๋๊ฐ ๋ถ์ด ์์
- ์ด๊ฒ์ ์ ๊ทผ ์์์๋ผ๊ณ ํ๋๋ฐ, OO.xx๋ผ๊ณ ์ผ์ ๋ ๋ค๋ฅธ ํด๋์ค์์ ๋ฉค๋ฒ๋ก ์ ๊ทผ ๊ฐ๋ฅํ์ง ์ฌ๋ถ๋ฅผ ๋ํ๋
- public์ด ๋ถ์ด ์๋ ๋ฉค๋ฒ๋ ๋ค๋ฅธ ํด๋์ค์์๋ ํธ์ถํ ์ ์์ง๋ง, private๊ฐ ๋ถ์ด ์๋ ๋ฉค๋ฒ๋ ๋ค๋ฅธ ํด๋์ค์์ ํธ์ถํ ์ ์์
- Attack ๋ฉ์๋์๋ public์ด ๋ถ์ด ์์ผ๋ฏ๋ก myPlayer. Attack()์ด๋ผ๊ณ ์จ์ Attack ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์์
- hp ๋ณ์์๋ private๊ฐ ๋ถ์ด ์์ผ๋ฏ๋ก myPlayer.hp๋ผ๊ณ ์จ๋ hp ๋ณ์์ ์ ๊ทผํ ์ ์์
- private์ ์ฐ๋ ์ด์ ๋ ๋ค๋ฅธ ์ฌ๋์ด ์์ ์ด ๋ง๋ ํด๋์ค๋ฅผ ์ฌ์ฉํ ๋ 'private ๋ฉ์๋๋ ์ฌ์ฉํ์ง ๋ง์ธ์, private ๋ณ์๋ ๋ณ๊ฒฝํ์ง ๋ง์ธ์'๋ผ๋ ์์ฌ ํ์๋ฅผ ํ ์ ์๊ธฐ ๋๋ฌธ์
- ์ฆ, ๋ค๋ฅธ ์ฌ๋์ด ๋ง๋ ํด๋์ค๋ฅผ ์ธ ๋๋ public์ด ๋ถ์ ๋ณ์์ ๋ฉ์๋๋ง ์จ์ผ ํจ
- ์ ๊ทผ ์์์๋ฅผ ์๋ตํ๋ฉด private์ผ๋ก ๊ฐ์ฃผ๋๋ฏ๋ก ๊ณต๊ฐํ๊ณ ์ถ์ ๋ณ์์ ๋ฉ์๋๊ฐ ์๋ค๋ฉด public ์์์๋ฅผ ๋ถ์ด๋ ๊ฒ์ด ์ข์
>> this ํค์๋
- this๋ ์์ ์ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ํค์๋์
- this.power๋ ์์ ์ ์ธ์คํด์ค๊ฐ ๊ฐ์ง power ๋ณ์(Player ํด๋์ค์ ์ธ์คํด์ค๊ฐ ๊ฐ์ง power ๋ณ์)๋ฅผ ๋ํ๋
- ์ฌ์ค this๋ฅผ ๋ถ์ด์ง ์์๋ ์๊ธฐ ํด๋์ค์ ๋ฉค๋ฒ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์
- '์ฝ๋: Player ํด๋์ค ๊ตฌํํ๊ธฐ' ์ Attack ๋ฉ์๋์์ ๋ค์๊ณผ ๊ฐ์ด ๋ฉค๋ฒ ๋ณ์์ ๋์ผํ ์ด๋ฆ์ ๋ก์ปฌ ๋ณ์ (power)๋ฅผ ์ ์ธํ๋ค๊ณ ํ ๋, power๋ผ๊ณ ๋ง ์ฐ๋ฉด ๋ก์ปฌ ๋ณ์์ ๊ฐ์ด ์ฐ์ ํด์ ์ฌ์ฉ๋จ
- ๋ฉค๋ฒ ๋ณ์๋ฅผ ์ธ ๋๋ ๋ช ์์ ์ผ๋ก this๋ฅผ ๋ถ์ฌ์ผ ์ค๋ฅ๋ฅผ ๋ง์ ์ ์์
>> ์์
- Test ํด๋์ค์ ์ ์ธ ๋ถ๋ถ(์ฝ๋ 2~29์ 22๋ฒ ์ค) ๋ค์ ๋ถ์ MonoBehaviour๋ ์์์ด๋ผ๊ณ ํจ
- ์ด ๋ถ๋ถ์ ์ ๋ํฐ๊ฐ ๋ฏธ๋ฆฌ ์ค๋นํ MonoBehaviour ํด๋์ค์ ๊ธฐ๋ฅ์ Test ํด๋์ค์ ์ง์ด๋ฃ๊ฒ ๋ค๊ณ ์ ์ธํ๋ ๊ณผ์ ์
- MonoBehaviour ํด๋์ค๋ ๊ฒ์ ์ค๋ธ์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋ฉค๋ฒ ๋ณ์์ ๋ฉค๋ฒ ๋ฉ์๋๋ก ์ค๋นํ ํด๋์ค์
- ๊ฒ์ ์ค๋ธ์ ํธ์ ๋ถ์ฌ ์คํํ๋ ์คํฌ๋ฆฝํธ๋ MonoBehaviour ํด๋์ค (๋๋ MonoBehaviour๋ฅผ ๋ฐํ์ผ๋ก ํ ํด๋์ค)๋ฅผ ์์ํด์ผ ํจ
>> Debug.Log๋ ์ธ์คํด์ค ์์ด ์ฌ์ฉํ ์ ์์๊น?
- Player ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ '์ธ์คํด์ค ๋ณ์๋ช .๋ฉค๋ฒ ๋ฉ์๋๋ช ' ํํ๋ก ๋ฉค๋ฒ ๋ฉ์๋๋ฅผ ์ง์ ํธ์ถํจ
- ํํธ ๊ณ์ํด์ ์ฐ๊ณ ์๋ Debug.Log ๋ฉ์๋๋ 'ํด๋์ค๋ช .๋ฉค๋ฒ ๋ฉ์๋๋ช ' ํํ๋ก ๋ฉค๋ฒ ๋ฉ์๋๋ฅผ ์ง์ ํธ์ถํจ
- Debug.Log๊ฐ static ๋ฉ์๋(์ธ์คํด์ค๋ฅผ ๋ง๋ค์ง ์๊ณ ๋ ์ธ ์ ์๋ ๋ฉ์๋)๋ก ์ ์ธ๋๊ธฐ ๋๋ฌธ
[4].3 Vector ํด๋์ค ์ฌ์ฉํ๊ธฐ
>> Vector
- 3D ๊ฒ์์ ๋ง๋ค๋ ค๋ฉด ๊ณต๊ฐ์์ ์ค๋ธ์ ํธ๋ฅผ ์ด๋์ ๋์ง, ์ด๋ ์ชฝ์ผ๋ก ์ฎ๊ธธ์ง, ์ด๋๋ฅด ํ์ ๋ณด๋ผ์ง ๋ฑ์ ์ ํด์ผ ํ๋ฏ๋ก floatํ์ x, y, z ๊ฐ ์ธ ๊ฐ๋ฅผ ์
- C#์๋ ์ด๋ฌํ ๊ฐ์ ํ๋๋ก ํฉ์ณ ๋ค๋ฃฐ ์ ์๋ Vector3 ํด๋์ค(์ ํํ๋ ๊ตฌ์กฐ์ฒด๋ผ๊ณ ํ๋ค)๊ฐ ์ค๋น๋์ด ์์
- ๋ฐ๋ฉด 2D ๊ฒ์์ฉ์๋ floatํ์ x, y ๊ฐ์ ๊ฐ๋ Vectort2 ํด๋์ค๊ฐ ์์
- Vector3 ํด๋์ค์ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์
- Vector3 ํด๋์ค์๋ x, y, z ๋ฉค๋ฒ ๋ณ์๊ฐ ์๊ณ , Vector2 ํด๋์ค๋ x, y ๋ฉค๋ฒ ๋ณ์๊ฐ ์์
- ๋ ๋ค ์ขํ๋ ๋ฒกํฐ๋ก ์ธ ์ ์์
- x = 3, y = 5๋ฅผ ์ขํ๋ก ์ฐ๋ฉด ์ค๋ธ์ ํธ๊ฐ (3, 5) ์์น์ ๋ฐฐ์น๋์๋ค๋ ๊ฒ์ ๋ปํจ
- ํํธ ๋ฒกํฐ๋ก ์ฐ๋ฉด ํ์ฌ ์์น์์ 'X ๋ฐฉํฅ์ผ๋ก 3', 'Y ๋ฐฉํฅ์ผ๋ก 5' ์์ง์๋ค๋ ๊ฒ์ ๋ปํจ
>> Vector ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- ์ฝ๋: Vector2 ํด๋์ค์ ๋ฉค๋ฒ ๋ณ์์ ์ซ์ ๋ํ๊ธฐ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void Start()
{
Vector2 playerPos = new Vector2(3.0f, 4.0f);
playerPos.x += 8.0f;
playerPos.y += 5.0f;
Debug.Log(playerPos);
}
}
\ ์ถ๋ ฅ ๊ฒฐ๊ณผ /
(11.0, 9.0)
- 9๋ฒ ์ค ์ผ์ชฝ์ Vector2 ํด๋์ค์ playerPos ๋ณ์๋ฅผ ์ ์ธํจ
- ์ด ๊ณผ์ ์ Vector2ํ์ ์์๋ฅผ ๋ง๋๋ ๊ณผ์ ์ด๋ฏ๋ก ๋์ ํ ์ ์๋ ์ธ์คํด์ค๋ฅผ ์ด์ด์ ์์ฑํด์ผ ํจ
- new Vector2(3.0f, 4.0f)๋ฅผ ์จ์ Vector2 ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์์ฑํด ๋์ ํจ
- new ํด๋์ค๋ช ()์ผ๋ก ํด๋์ค ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ ์์
- ํด๋์ค ๋ถ๋ถ์์ ์ค๋ช ํ ๋๋ก ๋ฉค๋ฒ ๋ณ์์ธ x์ y๊ฐ์ ์ ๊ทผํ๋ ค๋ฉด ๋ณ์๋ช x, ๋ณ์๋ช y๋ผ๊ณ ์
- ์ด๊ฒ์ ์ด์ฉํด์ 10~11๋ฒ ์ค์์ ํ๋ ์ด์ด๊ฐ ์๋ X์ขํ๋ฅผ 8, Y์ขํ๋ฅผ 5 ์ฆ๊ฐ์ํด
- Vector2 ํด๋์ค ๋ณ์๋ฅผ ๊ฒ์ ์ค๋ธ์ ํธ์ ์ขํ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๊ฐ์ ์ฆ๊ฐ์ํค๋ฉด ํ๋ฉด์ ๊ฒ์ ์ค๋ธ์ ํธ๊ฐ ์์ ๋ฐฉํฅ(์ค๋ฅธ์ชฝ ํน์ ์)์ผ๋ก ์ด๋ํจ
- ๋ฐ๋๋ก ๊ฐ์ ๊ฐ์์ํค๋ฉด ์์ ๋ฐฉํฅ(์ผ์ชฝ ํน์ ์๋)์ผ๋ก ์ด๋ํจ
๐ฅ๏ธ ์ฝ๋: Vector ํด๋์ค๋ผ๋ฆฌ ๋บ์ ํ๊ธฐ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void Start()
{
Vector2 startfos = new Vector2(2.0f, 1.0f);
Vector2 endfos = new Vector2(1.0f, 5.0f)
Vector2 dlr = endfos - startfos;
Debug.Log(dlr);
float len = dlr.magnitude;
Debug.Log(len);
}
}
\ ์ถ๋ ฅ ๊ฒฐ๊ณผ /
(6.0, 4.0)
7.211102
- ์ด ์์ ์์๋ startPos์์ endPos๋ก ํฅํ๋ dlr ๋ฒกํฐ๋ฅผ ๊ตฌํจ
- ๋ ์ ์ ์ขํ์์ ๋ฒกํฐ๋ฅผ ๊ตฌํ๊ธฐ ๋๋ฌธ์ 11๋ฒ ์ค์ endPos์์ startPos๋ฅผ ๋บ
- ์ด์ฒ๋ผ Vector2 ํด๋์ค๋ผ๋ฆฌ ๋บ์ ์ ํ ์ ์์
- 14๋ฒ ์ค์์๋ startPos๋ถํฐ endPos๊น์ง ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํจ
- ์ด ๊ฑฐ๋ฆฌ๋ dlr ๋ฒกํฐ ๊ธธ์ด์ ๊ฐ์ผ๋ฏ๋ก Vector2 ํด๋์ค๊ฐ ๊ฐ๋ magnitude ๋ฉค๋ฒ ๋ณ์๋ฅผ ์ฌ์ฉํด์ dlr ๋ฒกํฐ์ ๊ธธ์ด๋ฅผ ๊ตฌํจ
>> Vector ํด๋์ค ์์ฉํ๊ธฐ
- Vector ํด๋์ค๋ ๊ฐ์๋, ํ, ์ด๋ ์๋ ๊ฐ์ ๋ฌผ๋ฆฌ ์์น๋ก๋ ์ฌ์ฉํ ์ ์์
>> Visual Studio ๋์
- ๋๋๋ก Visual Studio์ intellisense ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ณ ์คํฌ๋ฆฝํธ ์ ์ฒด๊ฐ ๋นจ๊ฐ์ ๋ฌผ๊ฒฐ์ ์ผ๋ก ํ์๋ ๋๊ฐ ์์
- ์ด๋๋ Visual Studio๋ฅผ ๋ค์ ์คํํด๋ณด์
'์์ธ์ฌ์๋ํ๊ต SWU > 2023 ์ฌ๋ฆ๋ฐฉํ SW์ฌ๊ดํ๊ต Programing GURU' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[6] ์ํ ๊ฒ์ ์ ์ (2) (2) | 2023.07.06 |
---|---|
[5] ์ํ ๊ฒ์ ์ ์ (1) (6) | 2023.07.04 |
[3] C# ์คํฌ๋ฆฝํธ (2) (6) | 2023.06.29 |
[2] C# ์คํฌ๋ฆฝํธ (1) (6) | 2023.06.28 |
[1] ์ ๋ํฐ ์ค์น & ์กฐ์๋ฒ - (3) ์ค๋ธ์ ํธ ๋ค๋ฃจ๊ธฐ (6) | 2023.06.27 |