์„œ์šธ์—ฌ์ž๋Œ€ํ•™๊ต SWU/2023 ์—ฌ๋ฆ„๋ฐฉํ•™ SW์‚ฌ๊ด€ํ•™๊ต Programing GURU

[4] C# ์Šคํฌ๋ฆฝํŠธ (3)

waterproof 2023. 6. 30. 03:28

 

[4].1 ๋ฉ”์„œ๋“œ ๋งŒ๋“ค๊ธฐ
[4].2 ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ
[4].3 Vector ํด๋ž˜์Šค ์‚ฌ์šฉํ•˜๊ธฐ

 


[4].1 ๋ฉ”์„œ๋“œ ๋งŒ๋“ค๊ธฐ

 

>> ๋ฉ”์„œ๋“œ

  • ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋์—†์ด ๊ธธ์–ด์งˆ ๋•Œ, ๊ธธ์–ด์ง„ ์ฒ˜๋ฆฌ๋ฅผ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ์ฒ˜๋ฆฌ ๋ธ”๋ก์œผ๋กœ ๋ถ„ํ•ดํ•˜๊ณ  ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ ๋‹ค.
  • ์ด๋ ‡๊ฒŒ ๋ถ„ํ•ดํ•œ ๊ฐ ์ฒ˜๋ฆฌ๋ฅผ ๋ฉ”์„œ๋“œ(๋˜๋Š” ํ•จ์ˆ˜)๋ผ๊ณ  ํ•จ

๋ฉ”์„œ๋“œ

 

  • ๋ฉ”์„œ๋“œ์˜ ์—ญํ• : ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ๋ฌถ๋Š” ์—ญํ•  ์™ธ์—๋„ ๋ฉ”์„œ๋“œ์— ๊ฐ’์„ ์ „๋‹ฌํ•ด์„œ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•จ
  • ์ธ์ˆ˜: ๋ฉ”์„œ๋“œ๋กœ ๊ฑด๋„ค๋Š” ๊ฐ’, ๋ฐ˜ํ™˜๊ฐ’: ๋ฉ”์„œ๋“œ์—์„œ ๋Œ๋ ค๋ฐ›๋Š” ๊ฐ’
  • ์ธ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ ๊ฑด๋„ฌ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ˜ํ™˜๊ฐ’์€ ํ•œ ๊ฐœ๋กœ ์ •ํ•ด์ ธ ์žˆ์Œ

์ธ์ˆ˜์™€ ๋ฐ˜ํ™˜๊ฐ’

 

๐Ÿ”๋‚ด๊ฐ€ ์ฐพ์•„๋ณธ ๋‚ด์šฉ

  • ๋ฉ”์„œ๋“œ๋Š” ์ผ๋ จ์˜ ๋ฌธ์„ ํฌํ•จํ•˜๋Š” ์ฝ”๋“œ ๋ธ”๋ก์ž…๋‹ˆ๋‹ค.
  • ์ผ๋ จ์˜ ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜์˜ ์ด๋ฆ„ ์•„๋ž˜ ๋ฌถ์€ ๊ฒƒ
  • ๋ฉ”์†Œ๋“œ(๋ฉ”์„œ๋“œ)๋Š” C/C++์—์„œ๋Š” ํ•จ์ˆ˜, ํŒŒ์Šค์นผ์—์„œ๋Š” ํ”„๋กœ์‹œ์ ธ ๋“ฑ์œผ๋กœ ๋ถ€๋ฆ„

 

 

 

>> ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

Add ๋ฉ”์„œ๋“œ ์˜ˆ

  • ๋ฐ˜ํ™˜๊ฐ’์˜ ๋ฐ์ดํ„ฐ ํ˜•์—๋Š” ํ˜ธ์ถœ์ž์˜ ๋ฉ”์„œ๋“œ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ’์˜ ๋ฐ์ดํ„ฐ ํ˜•์„ ์ง€์ •ํ•จ
  • ์ง€์ •ํ•  ๋ฐ์ดํ„ฐ ํ˜•์€ ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํ˜•๊ณผ ๊ฐ™์Œ
  • ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š” ๋ฉ”์„œ๋“œ์—๋Š” 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์ด ๋ถ™์€ ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ๋งŒ ์จ์•ผ ํ•จ

ํด๋ž˜์Šค๊ฐ€ 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 ๊ฐ’ ์„ธ ๊ฐœ๋ฅผ ์”€

Vectorํ˜• ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  • 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' ์›€์ง์˜€๋‹ค๋Š” ๊ฒƒ์„ ๋œปํ•จ

์ขŒํ‘œ๋กœ์จ Vector2์™€ ๋ฒกํ„ฐ๋กœ์จ Vector2

 

 

 

>>  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 ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ๋”ํ•˜๊ธฐ

  • 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 ํด๋ž˜์Šค๋ผ๋ฆฌ ๋บ„์…ˆ์„ ํ•  ์ˆ˜ ์žˆ์Œ

Vector2 ํด๋ž˜์Šค๋ผ๋ฆฌ ๋บ„์…ˆํ•˜๊ธฐ

  • 14๋ฒˆ ์ค„์—์„œ๋Š” startPos๋ถ€ํ„ฐ endPos๊นŒ์ง€ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•จ
  • ์ด ๊ฑฐ๋ฆฌ๋Š” dlr ๋ฒกํ„ฐ ๊ธธ์ด์™€ ๊ฐ™์œผ๋ฏ€๋กœ Vector2 ํด๋ž˜์Šค๊ฐ€ ๊ฐ–๋Š” magnitude ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ dlr ๋ฒกํ„ฐ์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•จ

 

 

 

>> Vector ํด๋ž˜์Šค ์‘์šฉํ•˜๊ธฐ

  • Vector ํด๋ž˜์Šค๋Š” ๊ฐ€์†๋„, ํž˜, ์ด๋™ ์†๋„ ๊ฐ™์€ ๋ฌผ๋ฆฌ ์ˆ˜์น˜๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

Vector2๋ฅผ ์ขŒํ‘œ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ

 

 

 

>> Visual Studio ๋™์ž‘

  • ๋•Œ๋•Œ๋กœ Visual Studio์˜ intellisense ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  ์Šคํฌ๋ฆฝํŠธ ์ „์ฒด๊ฐ€ ๋นจ๊ฐ„์ƒ‰ ๋ฌผ๊ฒฐ์„ ์œผ๋กœ ํ‘œ์‹œ๋  ๋•Œ๊ฐ€ ์žˆ์Œ
  • ์ด๋•Œ๋Š” Visual Studio๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋ณด์ž