se-ni / HY_VR-AR-Basics-of-game-creation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๐ŸŽฎ  Term Project for 2019  :video_game:

- Team Member : ๋ฐ•์„ธ์€, ์œคํฌ์—ฐ, ์ตœ์• ๋ฆผ

- Title : ์š”๋ฆฌ์˜ ์‹ 

- ๊ฐœ๋ฐœ ํˆด : Unity 3D

- ์Šคํ† ๋ฆฌ : ์š”๋ฆฌ์™€ ๊ด€๋ จ๋œ 3๊ฐ€์ง€ ๋ฏธ๋‹ˆ๊ฒŒ์ž„์„ ๋ชจ๋‘ ์„ฑ๊ณตํ•ด์•ผ๋งŒ ์š”๋ฆฌ์˜ ์‹  ํƒ€์ดํ‹€์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„

- ๋งต ๊ตฌ์„ฑ :

ํ–„๋ฒ„๊ฑฐ ๊ฒŒ์ž„ ์ค‘์‹ ์กฐํ•ฉ ๋งž์ถ”๊ธฐ ๊ฒŒ์ž„ ์žก์ฑ„ ๋งŒ๋“ค๊ธฐ ๊ฒŒ์ž„
ํ–„๋ฒ„๊ฑฐ ๊ฒŒ์ž„ ์ค‘์‹ ์กฐํ•ฉ ๋งž์ถ”๊ธฐ ๊ฒŒ์ž„ ์žก์ฑ„ ๋งŒ๋“ค๊ธฐ ๊ฒŒ์ž„

์ฃผ์š” ๊ตฌํ˜„ ๊ธฐ๋Šฅ

1. ํ–„๋ฒ„๊ฑฐ ์Œ“๊ธฐ ๊ฒŒ์ž„ :

  • ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์žฌ๋ฃŒ ์ˆœ์„œ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ •ํ•ด ๋†“์€ ๋‹ต์ด๋ž‘ ๋น„๊ตํ•˜๋Š” ์ฝ”๋“œ
์ฝ”๋“œ
```C
if(Input.GetKeyDown(KeyCode.Return) // Enter
	{
		if(burger[0] == answer[0] && burger[1] == answer[1] && burger[2] == answer[2]
			&& burger[3] == answer[4] && burger[4] == answer[5] && burger[5] == answer[5])  
		{
			bulgogi_cnt++;
			for(int i = 0 ; i < 4 ; i++)
				{
				burger[i] = 0;
				}
		}
	}
```
  • ์ถฉ๋Œํ•˜๋Š” ํ–„๋ฒ„๊ฑฐ์˜ ์žฌ๋ฃŒ๋ฅผ ๋งจ ์•„๋ž˜์˜ ๋นต์— ์ž์‹์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ํŒ๋ณ„ ํ›„ ํ–„๋ฒ„๊ฑฐ์žฌ๋ฃŒ(์ž์‹)์ด ์‚ฌ๋ผ์ง€๋Š” ์ฝ”๋“œ ๊ตฌํ˜„
์ฝ”๋“œ
```C
Public class Colli : MonoBehaviour
{
	GameObject base bread = null ;
	void Start()
	{
		base bread = GameObject.Find(โ€œbase breadโ€);
	}

	void OnCollisionEnter(Collision coll)
	{
		this.transform.parent = base bread.transform;
	}
	
	...

	foreach(Transform child in transform)
	{
		GameObject.Destroy(child.gameObject);
	}
	//์ดˆ๊ธฐํ™”
	i=0;
}
```

2. Canvas๋ฅผ ์ด์šฉํ•œ NPC ๋Œ€ํ™” ์ฐฝ ๋ฐ ๋ฒ„ํŠผ ํด๋ฆญ ์ด๋ฒคํŠธ(์žฅ๋ฉด ์ „ํ™˜ ๋“ฑ) ์ฝ”๋“œ ๊ตฌํ˜„

์ฝ”๋“œ
```C
public class Dialogue
{
	[TextArea]
	public string dialogue;
	public Sprite cg;
}

public class changeScene1 : MonoBehaviour
{
	[SerializeField] private SpriteRenderer sprite_StandingCG;
	[SerializeField] private SpriteRenderer sprite_DialogueBox;
	[SerializeField] private Text txt_Dialogue;

	private bool isDialogue = false;
	private int cnt = 0;
	[SerializeField] private Dialogue[] dialogue;

	private void OnOff(bool _flag)
	{
		sprite_DialogueBox.gameObject.SetActive(_flag);
		sprite_StandingCG.gameObject.SetActive(_flag);
		txt_Dialogue.gameObject.SetActive(_flag);
		isDialogue(_flag);
	}

	private void NextDialogue()
	{
		txt_Dialogue.text = dialogue[cnt].dialogue;
		sprite_StandingCG.sprite = dialogue[cnt].cg;
		cnt++;
	}

	private void Start()
	{
		cnt = 0;
		isDialogue = true;
	}

	void Update()
	{
		if(isDialogue)
		{
			if(Input.GetKeyDown(KeyCode.Space))
			{
				if(cnt < dialogue.Length)
					NextDialogue();
				else
				{
					OnOff(false);
					SceneManager.LoadScene(1); //์žฅ๋ฉด์ „ํ™˜
				}
			}
		}
	}
}
```

ํŠน์ง•

  1. ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ํ–„๋ฒ„๊ฑฐ ์žฌ๋ฃŒ ์ˆœ์„œ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ •๋‹ต ๋ ˆ์‹œํ”ผ๋ž‘ ๋น„๊ตํ•˜๋Š” ์ฝ”๋“œ ๊ตฌํ˜„

  2. ์ถฉ๋Œํ•˜๋Š” ํ–„๋ฒ„๊ฑฐ์˜ ์žฌ๋ฃŒ๋ฅผ ๋งจ ์•„๋ž˜์˜ ๋นต์— ์ž์‹์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ํŒ๋ณ„ ํ›„ ํ–„๋ฒ„๊ฑฐ์žฌ๋ฃŒ(์ž์‹)์ด ์‚ฌ๋ผ์ง€๋Š” ์ฝ”๋“œ ๊ตฌํ˜„

  3. Canvas๋ฅผ ์ด์šฉํ•œ NPC ๋Œ€ํ™” ์ฐฝ ๋ฐ ๋ฒ„ํŠผ ํด๋ฆญ ์ด๋ฒคํŠธ ์ฝ”๋“œ ๊ตฌํ˜„

๊ตฌํ˜„์‹œ ์–ด๋ ค์› ๋˜ ์ 

  1. ํ–„๋ฒ„๊ฑฐ ๊ฒŒ์ž„์˜ ๋ถ€๋ชจ-์ž์‹ ์—†์• ๊ธฐ

  2. Main Scene ์˜ Character ์›€์ง์ž„ ๊ตฌํ˜„ : ๊ตฌ๊ธ€ ์ฐธ๊ณ 

  3. ์žก์ฑ„ ๋งŒ๋“ค๊ธฐ ๊ฒŒ์ž„ ๋งˆ์šฐ์Šค ๋“œ๋ž˜๊ทธ ๊ตฌํ˜„ : ๊ตฌ๊ธ€ ์ฐธ๊ณ 

About