์ฃผ์ ๊ฒฝ๋ ฅ
็พ 2014 ~ 2015, 2022 ~ ํธ์๋ํ๊ต ๊ฒ์ํ๊ณผ ์ด๋น๊ต์
็พ 2016 ~ ๊ณต์ฃผ๋ํ๊ต ๊ฒ์๋์์ธํ๊ณผ ๊ฐ์์ ๋ด๊ต์
็พ 2022 ~ ์ ๋ํฐ ๊ณต์ ์ธ์ฆ ๊ฐ์ฌ (Unity Certified Instructor)
ๅ 2023 ํฌํญ๊ณต๊ณผ๋ํ๊ต ์ ์์ ๊ธฐ๊ณตํ๊ณผ ์ธ๋๊ต์
ๅ 2022 ์ฐ์ก๋ํ๊ต ํ ํฌ๋ ธ๋ฏธ๋์ด์ตํฉํ๋ถ (๊ฒ์๋ฉํฐ๋ฏธ๋์ด์ ๊ณต) ์ธ๋๊ต์
ๅ 2019 ๊ณต์ฃผ๋ํ๊ต ์ปดํจํฐ๊ณตํ๋ถ ์ธ๋๊ต์
ๅ 2018 ์๋ช ๋ํ๊ต ์ฌ์ง์์์ฝํ ์ธ ํ๊ณผ ์ธ๋๊ต์
ๅ 2017 ๊ณ์์์ ๋ํ๊ต ๊ฒ์๋ฏธ๋์ด๊ณผ ์ธ๋๊ต์
ๅ 2016, 2020~2021 ๋ฐฐ์ฌ๋ํ๊ต ๊ฒ์ํ๊ณผ ์ธ๋๊ต์
ๅ 2016๋จ์์ธ๋ํ๊ต VRAR ์ธ๋๊ต์
ๅ 2016 ํ๊ตญ์์๋ํ๊ต ๊ฒ์์ ๋๋ฉ์ด์ ๊ณผ ์ธ๋๊ต์
ๅ 2015 ~ 2018 ๋ฐฑ์๋ํ๊ต ์ ๋ณดํต์ ํ๋ถ ์ธ๋๊ต์
"๊ณ ๋ฐ์ฌ์ ์ ๋ํฐ ๋ ธํธ" ์ ํ๋ธ ์ด์
https://www.youtube.com/@unitynote
์๊ฐ
๊ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ ๊ณต์ผ๋ก ๊ฒ์ ๊ฐ๋ฐ, ์ ๋ํฐ ์์ง ๊ฐ์๋ฅผ ํ๊ณ ์์ต๋๋ค.
๊ฐ์ ๋ถ์ผ : ์ ๋ํฐ ์์ง(๊ธฐ์ด, 2D/3D ๊ฒ์ ๊ฐ๋ฐ, VR/AR), ์๋ฒ, ์ธ๊ณต์ง๋ฅ, ์ ฐ์ด๋, ๊ฒ์ํ๊ฐ๋ก ๋ฑ
Courses
Reviews
- Dr. Ko's Unity Hyper Casual Game Series 02: Learn by Following
- [Unity 6] Learning by Doing: Dr. Go's 2D Platformer Game Development
- Learn Unity Basics with Dr. Koh by following along
- Dr. Ko's Unity Hyper Casual Game Series 02: Learn by Following
- Dr. Ko's Unity Hyper Casual Game Series 04: Learn by Following
Posts
Q&A
02. ๊ฒ์์ค๋ธ์ ํธ ๋ฌผ๋ฆฌ์ ์ถฉ๋ ๋ง์ง๋ง sun์์ ์ ์์ง์
OnCollisionStay2D(), OnTriggerStay2D()์ ๊ฒฝ์ฐ ์ค๋ช ์ ์ถฉ๋ ์ค์ผ ๋ ๋งค ํ๋ ์ ํธ์ถ์ด์ง๋ง"๋ฌผ๋ฆฌ์ ํ์ด ๊ฐํด์ง๊ณ ์์ ๋"๋ผ๋ ์กฐ๊ฑด์ด ํ๋ ๋ ํ์ํฉ๋๋ค.์๋ก ์ถฉ๋ ์ค์ด์ง๋ง ํ๋ ์ด์ด๊ฐ ๋ฉ์ถฐ์์ด์ ๋ฌผ๋ฆฌ์ ํ์ด ๊ฐํด์ง์ง ์์ผ๋ฉด Stay์ ์ ์ง ์๊ฐ์ 1์ด ์ ๋์ ๋๋ค. ๊ณ์ ์ ์ง๊ฐ ๋๋ ค๋ฉด trigger ๋ฌผ์ฒด ์์์ ํ๋ ์ด์ด๊ฐ ์ถฉ๋ ๋ฒ์๋ฅผ ๋ฒ์ด๋์ง ์๊ณ ์ถฉ๋์ด ์ ์ง๋๋ ๋ฒ์ ์์์ ์กฐ๊ธ์ฉ ๊ณ์ ์์ง์ฌ์ค์ผ ํฉ๋๋ค.
- 0
- 2
- 25
Q&A
๊ฐ์ 01-02์์ ํ๋ฆฌํน ๋ ๋๋ง ์ค๋ฅ
ํ์ฌ ์ฌ์ฉ ์ค์ธ ์ ๋ํฐ ๋ฒ์ ๊ณผ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ ํ ํ๋ฆฟ ์ ๋ณด๋ฅผ ์ ์ ์์๊น์?์ ์์ ์ผ๋ก ๋์ค๋ ค๋ฉด ์ ๋ํฐ 6000.0.23f1 ์ด์ ๋ฒ์ (์ ๋ํฐ 6 ์ ์๋ฒ์ ), Universal 2D ํ ํ๋ฆฟ์ผ๋ก ์์ฑํด์ผ ํฉ๋๋ค.
- 0
- 2
- 16
Q&A
02-05 ๋ ๋ฒจ์์(๋ง์ง๋ง ๊ฐ์)์์ SelectLevelController์ค๋ธ์ ํธ์ SelectLevelController ์ปดํฌ๋ํธ์กฐ์
SelectLevelController ์คํฌ๋ฆฝํธ์ ์์ฑํด๋ ResetData()๋ผ๋ ์ ํฌ๊ฐ ๋ง๋ ๋ฉ์๋์ ๋๋ค. ๋ฉ์๋ ์์ [ContextMenu("..")] ์ ๊ฐ์ด ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ์์ฑํ๋ฉดํด๋น ๋ฉ์๋๋ฅผ ์ ๋ํฐ ์๋ํฐ์์ ๋ฉ๋ด์ ๊ฐ์ ํํ๋ก ์คํํ ์ ์์ต๋๋ค.
- 0
- 1
- 52
Q&A
02-07 ๋ณ์์ดํ ์ bool[] ๋ก ํ ์ด์ ๊ฐ ๊ถ๊ธํด์.
์คํ ์ด์ง๋ง๋ค 3๊ฐ์ ๋ณ์ด ๋ฐฐ์น๋์ด ์๊ณ , 0, 1, 2๋ฒ ๋ณ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. 0๋ฒ ๋ณ์ ํ๋ํ๋ฉด 0๋ฒ ๋ณ UI ํ์ฑํ, 1๋ฒ ๋ณ์ ํ๋ํ๋ฉด 1๋ฒ ๋ณ UI ํ์ฑํ์ ๊ฐ์ด๋ค์์ UI๋ฅผ ์ถ๋ ฅํ ๋ ๋ณ ํ๋ ์ฌ๋ถ์ ๋ฐ๋ผ ์ง์ ๋ ์๋ฒ์ ๋ณ UI๊ฐ ํ์ฑํ๋๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ์ด์ฉํด ๊ฐ ๋ณ์ ํ๋ ์ฌ๋ถ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- 0
- 1
- 80
Q&A
02-02 ํ๋ ์ด์ด ์ฒด๋ ฅ์์ if(current >1)์ if(current > 0) ๋ก...
if ( current > 1 )์ด ๋ง์ต๋๋ค. ํํธ๊ฐ 3๊ฐ ์์ผ๋ 3๋ ๋ง์ผ๋ฉด ์ฃฝ์ด์ผ ํ๊ณ ,current๊ฐ 3์ผ ๋ ๋ง์ผ๋ฉด current๋ 2๊ฐ ๋ฉ๋๋ค. (1๋)current๊ฐ 2์ผ ๋ ๋ง์ผ๋ฉด current๋ 1์ด ๋ฉ๋๋ค. (2๋)current๊ฐ 1์ผ ๋ ๋ง์ผ๋ฉด ์ฃฝ์ต๋๋ค. (3๋)
- 0
- 1
- 66
Q&A
03-01 Hidden Tilmap์์
์ํ ๊ฐ์ด 1์ผ ๋ 0๊น์ง ๋ฐ๋๋ ์๊ฐ์ด 1์ด์ ๋๋ค.์ ์ ๊ฐ ํญ์ ์ํ ๊ฐ์ด 1์ผ ๋ ์ถฉ๋ํด์ 0์ผ๋ก ๋ฐ๋๊ณ , 0์ผ ๋ ๋ฐ์ผ๋ก ๋๊ฐ์ 1๋ก ๋ฐ๋์ง ์์ต๋๋ค. ์์ ๋ง์ง๋ง์ ๊ฒ์ ์คํ๊ณผ ๊ฐ์ด ์๋ค ๊ฐ๋ค ํ๋ฉด์ ์ํ ๊ฐ์ด ๋ฐ๋๋ ๋์ค์์ถฉ๋/์ถฉ๋ ํด์ ํ ์ ์๊ธฐ ๋๋ฌธ์์ํ ๊ฐ์ด 0.5์ผ ๋๋ 0.5์ด ๋์ Fade ํจ๊ณผ๋ฅผ ์ฌ์ํ๊ณ ,์ํ ๊ฐ์ด 0.2์ผ ๋๋ 0.2์ด ๋์ Fade ํจ๊ณผ๋ฅผ ์ฌ์ํ๊ธฐ ์ํดtilemap.color.a๋ฅผ Fade ๋๋ ์๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.
- 0
- 2
- 67
Q&A
02-04 ์ ํ๋ฐํ Animation ๋ทฐ์์ ์ด๋ฏธ์ง ๋์ค๊ฒ ํ๋ ๋ฐฉ๋ฒ์ด ๊ถ๊ธํด์.
์ง๊ธ ์ด๋ฏธ์ง ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ์ ๋ชฉ๋ก์ ์ ๊ฑฐ๋ ์ฌ๋ "โถ" ์ด๋ ๊ฒ ์๊ธด ์์ด์ฝ์ ํด๋ฆญํ๋ฉด ๋ฉ๋๋ค.
- 0
- 1
- 72
Q&A
02-03 ์ถ๋ฝํ๋ ๋ฐํ์์ isKinematic = true;๋ก ํ๋ฉด, ์ค๋ ฅ์ํฅ ์๋ฐ์ผ๋
PlatformDrop ํด๋์ค์์ OnRespawn() ๋ฉ์๋์ ์๋rigid2D.velocity = Vector2.zero; ๋ฌธ์ฅ์ ์ง์ฐ๊ณ ์คํํด๋ณด๋ฉด๋ฐํ์ ๋ฐ์์ ๋จ์ด๋จ๋ฆฌ๊ณ , ๋ค์ ๋ฆฌ์คํฐ ๋์์ ๋ ์๋ ฅ ๊ฐ์ด ์ด๊ธฐํ ์๋์๋ฆฌ์คํฐ ๋์๋ง์ ์๋๋ก ๋จ์ด์ง๋๋ค.
- 0
- 2
- 94
Q&A
02-03 ์ถ๋ฝํ๋ ๋ฐํ์ Mathf.PingPong ๋ฉ์๋ ์ค๋ช ๋ฌธ ์์ ํด์ผ ๊ฒ ์ด์.
Mathf.PingPong() ๋ฉ์๋๋ ๊ฐ์ด ์ ์ง์ ์ผ๋ก ์ฆ๊ฐํด ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์ length๊ฐ์ ๋์ด๊ฐ๊ฒ ๋๋ฉด๊ฐ์ด 0.0 ~ length๊น์ง ์๋ค ๊ฐ๋ค ํ๊ฒ ๋ฉ๋๋ค.length๊ฐ 1์ผ ๋t๊ฐ 0์ด๋ฉด 0t๊ฐ 1์ด๋ฉด 1t๊ฐ 1.1์ด๋ฉด 0.9t๊ฐ 1.2์ด๋ฉด 0.8..t๊ฐ 2์ด๋ฉด 0t๊ฐ 2.1์ด๋ฉด 0.1๊ณผ ๊ฐ์ด ๋ฐํ ๊ฐ์ด ์ข์ฐ๋ก ์๋ค๊ฐ๋ค(PingPong) ๋ฉ๋๋ค.
- 0
- 2
- 100
Q&A
02-02 ํ๋ ์ด์ด์ ๋ฐํ: PlatformBase ์์ํด๋์ค ์ดํ์น๋ฌธ์
Platform_00_Moving์ ๊ฒฝ์ฐํ๋ ์ด์ด๊ฐ ๋ฐํ์ ๋ฐ์์ ๋(์ถฉ๋ํ์ ๋) ์์์ผ๋ก ๋ฑ๋กํ๋ ๊ฒ๊ณผํ๋ ์ด์ด๊ฐ ๋ฐํ๊ณผ ์ถฉ๋์ด ํด์ ๋ ๋ ์์์ ํด์ ํ๋ ๋ ๊ฐ์ง ์ก์ ์ด ํ์ํ๋ฐ PlatformBase๋ ๋ฐํ๊ณผ ์ถฉ๋ํ์ ๋ UpdateCollision()์ ํธ์ถํ๋ค. ๋ ์ฒ๋ฆฌ๋ง ๋์ด ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ถํ์ ๋ค๋ฅธ ๋ฐํ๋ ์ถฉ๋ํ์ ๋, ์ถฉ๋ ํด์ ํ ๋์ ๊ฐ์ด ๋ ๊ฐ์ง ์ก์ ์ด ํ์ํ๋ฉดPlatformBase์ 2๊ฐ์ง ์ก์ ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํด๋ ์๋ ์๋๋ฐํ์ฌ ์์ ์์๋ Platform_00_Moving๋ง ๋ ๊ฐ์ง ์ก์ ์ด ํ์ํ๊ณ ,๊ฒฐ๊ตญ ์ถฉ๋์ด ํด์ ๋ ๋๋ OnCollisionExit2D() ๋ฉ์๋๋ฅผ ํธ์ถํด์ ๊ตฌํํด์ผ ํ๊ธฐ ๋๋ฌธ์PlatformMoving ํด๋์ค๋ ๋ถ๋ชจ๋ก PlatformBase๋ฅผ ์์๋ฐ์ง ์๊ณ ๋ฐํ๊ณผ ์ถฉ๋ํ ๋(OnCollisionEnter2D), ์ถฉ๋์ด ํด์ ๋ ๋(OnCollisionExit2D)๋ฅผ์ด๋ฒคํธ ๋ฉ์๋๋ก ์ฒ๋ฆฌํฉ๋๋ค. ๊ทธ๋์ Platform_00_Moving ์ค๋ธ์ ํธ๋ฅผ ๋ฐ์์ ๋๋ PlayerController ํด๋์ค์ ์๋if ( .. TryGetComponent() .. ) ์กฐ๊ฑด๋ฌธ ๋ด๋ถ๋ฅผ ์คํํ์ง ์์ต๋๋ค. ๋ค๋ฅธ ๋ฐํ๋ค์ฒ๋ผ ๋ฐํ์ด๋๊น PlatformBase๋ฅผ ์์ ๋ฐ์์ ์ฒ๋ฆฌํด์ผ์ง! ๋ผ๊ณ ํ๋ค๋ฉด(1) ์ถฉ๋ํ์ ๋๋ UpdateCollision() ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ๊ณ ,์ถฉ๋ ํด์ ํ ๋๋ OnCollisionExit2D() ๋ฉ์๋๋ก ์ฒ๋ฆฌํ๋ค.or(2) PlatformBase ํด๋์ค์ ์ถฉ๋ํ์ ๋์ ์ถฉ๋ ํด์ ํ ๋์ 2๊ฐ์ง ์ก์ ์ฒ๋ฆฌ๋ฅผ ๋ฉ์๋๋ก ์ ์ํ๋ค.๋ค๋ง ์ด ๊ฒฝ์ฐ์๋ ๋ค๋ฅธ ๋ฐํ๋ค๋ ์ถฉ๋ ํด์ ์ ๋ํ ๋ฉ์๋ ์ฌ์ ์๋ฅผ ๋ฃ์ด์ค์ผ ํ๋๋ฐ ์ด๋ ๋ฐํ ์ธ์๋ ์ก์ ์ด ์์ด์ ๋ฉ์๋๋ฅผ ๋น์๋ ์ํ๋ก ๋ฌ์ผ ํ๊ธฐ ๋๋ฌธ์ ์์์ ๋ฐ์ง ์๊ณ ๋ณ๊ฐ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉํฅ์ผ๋ก ์์ฑํ์ต๋๋ค.
- 0
- 2
- 75