๊ฒ์ ๋ด์์ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ๊ฑฐ๋ NPC๋ค๊ณผ ๋ํ ์ ์ฌ์ฉํ๋ ๋งํ์ UI
Astro Cat ๊ฒ์ ์งํ์์ ์์ฃผ ํกํกํ ์ญํ ์ ํด์ค ๋งํ์ UI๋ฅผ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋น
์ฐ๋ฆฌ๊ฐ ๋ง๋ ๊ฒ์์ ๋งํ์ ์ ๋๊ธฐ๋ ์กฐ๊ฑด์ ์๋์ ๊ฐ๋ค.
1. ์ฒซ๋ฒ์งธ ๋งํ์ ์ ํด๋ฆญํ๋ฉด ๋๋ฒ์งธ ๋งํ์ ์ผ๋ก ๋์ด๊ฐ๋ค.
2. ๋๋ฒ์งธ ๋งํ์ ์ ํด๋ฆญํ๋ฉด ํด๋น ๋งํ์ ์ด ์ฌ๋ผ์ง๊ณ ์ฉ์ด ์ค ์์ดํ ์ด ๋ํ๋๋ค.
3. ์ฉ์ด ์ค ์์ดํ ์ Player๊ฐ Getํ๋ฉด ์ธ ๋ฒ์งธ ๋งํ์ ์ด ๋ํ๋๋ค.
โป ๋ํ์ฐฝ UI๋ ๊ธ ๋งจ ์๋ ์์ ์ ์ฐธ๊ณ ํ์๋ผ
๋ํ์ฐฝ์์ ์ฐฝ์ ๋ด๋นํ๊ณ ์๋ talkPanel์ ์ดํด๋ณด๊ฒ ๋ค.
Unity ํ์ด์ด๋ผํค์ UI>Canvas๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ ๊ทธ ์๋ ๋ค์๊ณผ ๊ฐ์ด UI>Image๋ฅผ ์ถ๊ฐํด์ค๋ค.
Canvas๋ฅผ ์ถ๊ฐํด์ค์ผ ๊ฒ์ ๋ด UI๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
๋งํ์ (talkPanel) ์๋์๋ UI>Text๋ฅผ ์ถ๊ฐํด์ค๋ค.
(nameTag์ Button์ ๋ชจ๋ UI>Image์ด๋ฉฐ ์ ํ์ ์ธ ๋ถ๋ถ์ด๋ค.)
โป ์ฐธ๊ณ ๋ก 3D ๊ฒ์์ UI ์์ ์์๋ ์ด๋ ๊ฒ 2D๋ก ์ค์ ํด๋๊ณ ํ๋ฉด ํธํ๋ค.
๋งํ์ ์ Anchor/Inspector ์ค์ ์ ๋ค์๊ณผ ๊ฐ์ด ํด์ฃผ์๋ค.
์ ๋นํ ์ํ๋ ์ ๋๋ฅผ ์ฐพ์ Scene/Game์ ๋ด๊ฐ๋ฉฐ ํด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋๋ ์ด๋ฏธ์ง๊ฐ ์ด์ํ๋ค ์ถ์ผ๋ฉด(ex.์ง์ฌ๊ฐํ ์ด๋ฏธ์ง๋ฅผ ์ํ๋๋ฐ ์ ์ฌ๊ฐํ ์ด๋ฏธ์ง์ผ ๊ฒฝ์ฐ) ํด๋น ์ด๋ฏธ์ง ์์ ์ ํด๋ฆญํ ํ
Window>2D>sprite editor๋ฅผ ํตํด ์กฐ์ ํด์ฃผ๋ฉด ๋๋ค.
๋ค์์ผ๋ก ๋ํ์ฐฝ์์ ๋ํ๋ฅผ ๋ด๋นํ๋ Text UI๋ก ๋์ด๊ฐ๋ค.
Text UI์์ ๊ฐ์ฅ ์ค์ํ ์ค์ ์ Overflow์ Best Fit์ด๋ค!
๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ๋ฉด ์๋ง ์ฌ์ฉ์๊ฐ ์ํ๋ ๋ชจ์์ UI๊ฐ ๋์ฌ ๊ฒ์ด๋ค.
(ํฐํธ๋ ๋ค์ด๋ฐ์์ ๋ฐ๊ฟ์ฃผ๋ฉด ์ฐ ๊ฒ์๊ฐ์ผ๋ ์ฌ๋งํ๋ฉด ๋ฐ๊พธ์.)
์ด์ ๊ทธ๋ผ UI๋ ์์ฑ๋์์ผ๋ ์์ ๋งํ '๋งํ์ ์ ๋๊ธฐ๋ ์กฐ๊ฑด'์ ์ถฉ์กฑํ ์ ์๊ฒ ์ฝ๋๋ฅผ ์ง๋ณด์.
UI๋ฅผ ๊ด๋ฆฌํ ์ฝ๋์๋ ๋งจ ์์ ์๋ ์ฝ๋๋ฅผ ๊ผญ ์ถ๊ฐํด์ค๋ค.
using UnityEngine.UI;
์ฐ์ ์ฒซ ๋ฒ์งธ ์กฐ๊ฑด๊ณผ ๋ ๋ฒ์งธ ์กฐ๊ฑด์ ์ถฉ์กฑ์ํค๊ธฐ ์ํด ๋งํ์ ์ ํด๋ฆญํด์ ๋๊ธฐ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์.
์ฐ๋ฆฌ๊ฐ ์ ํด์ค ์๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ๋ค.
๋ง์ฐ์ค ์ผ์ชฝ ๋ฒํผ์ ํด๋ฆญํ๋ ์์ ๋ฐ๋ผ ๋งํ์ ์์ text๊ฐ ๋ฐ๋๋ค.
public GameObject talkPanel;
public Text text;
int clickCount = 0;
int getGem = false;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
if (clickCount == 0)
{
text.text = "๋ณด์์ ์ ๋ชจ์๋๋ฉด ๋ถ๋ช
์ธ๋ชจ๊ฐ ์์ ๊ฒ์ด๋ค.\n์ด ์ํ๊ณ๋ฅผ ํ์ถํ๊ณ ์ถ๋ค๋ฉด ๋ณด์์ ๊ผญ ๊ธฐ์ตํด!";
clickCount++; // 1
}
else if (!getGem && clickCount == 1) // ๋ณด์ ๋ํ๋จ
{
talkPanel.SetActive(false);
GameObject.Find("Gem").transform.Find("Diamond").gameObject.SetActive(true);
clickCount++; // 2
}
else if (lastClick && clickCount == 2) // ๋ง์ง๋ง ๋งํ์ ๋นํ์ฑํ
{
talkPanel.SetActive(false);
}
Debug.Log(getGem);
Debug.Log(clickCount);
}
}
Input.GetMouseButton(0) & (ํ ์คํธ).text & SetActive์ ํจ๊ป๋ผ๋ฉด ์ด๋๋ ์ง ๊ฐ ์ ์์ด
public GameObject๋ public Text์ ๊ผญ UI Object ํ ๋นํด์ฃผ๊ธฐ
์ฌ์ค ์ฌ๊ธฐ๊น์ง๋ง ํด๋ ๋งํ์ ๊ตฌํ์ ๋!
์ธ ๋ฒ์งธ ์กฐ๊ฑด์ ๋ค์ ๊ธ์์ ์์ดํ Get ๊ตฌํ๊ณผ ํจ๊ป ์ถฉ์กฑ์ํฌ ์์
๐ ์ถ๊ฐ ์๋ฃ
[Unity] ์์ดํ ๊ตฌํํ๊ธฐ
๋งํ์ UI์ ์ถ์ฒ๋ ์๋ ์์ ์คํ ์ด!
'๐ฎ Unity' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Unity] ๋ง์ฐ์ค๋ก ์ค๋ธ์ ํธ ํด๋ฆญ ์ ์ธ์ํ๊ธฐ (0) | 2021.07.10 |
---|---|
[Unity] ์์ดํ ๊ตฌํํ๊ธฐ (0) | 2021.07.05 |
[Unity] Player ๋ฐฉํฅํค๋ก ์์ง์ด๊ธฐ / Animation ์ค์ (0) | 2021.06.22 |
[Unity] Update() (0) | 2021.05.01 |
[Unity] ์ค๋ธ์ ํธ ๊ฐ ์ถฉ๋ ์ฒ๋ฆฌ (0) | 2021.05.01 |