No video

코루틴 다루기 (2) - 코루틴 중단하기 + 코루틴 매개변수 + yield break | 유니티

  Рет қаралды 4,953

WER's GAME DEVELOP YOUTUBE

WER's GAME DEVELOP YOUTUBE

Күн бұрын

코루틴 다루기 2편으로 코루틴 중단하기, 코루틴 함수에서 매개변수 사용하기, yield break에 대해서 알아봅시다.
타임라인
0:00 인트로
0:18 - 코루틴 중단시키기
4:27 - 코루틴 함수의 매개변수
7:26 - yield break
본 영상의 오프닝은 비디오몬스터를 이용해서 만들어졌습니다.
videomonster.com/
[유니티 어필리에이트 프로그램]
아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.
- 유니티 에셋스토어 : prf.hn/l/vJl41D5
- 유니티 플러스 : prf.hn/l/wLNyJZG
- 유니티 프로 : prf.hn/l/qXOybmp
[투네이션]
toon.at/donate/63773521276146...
[Patreon]
/ wergamedevchan
#유니티강좌 #코루틴 #게임만들기

Пікірлер: 25
@user-ky5vo5kz2n
@user-ky5vo5kz2n 3 жыл бұрын
정말 많은 도움이 됬습니다 감사합니다
@DrummingBunny-ch7zv
@DrummingBunny-ch7zv Жыл бұрын
진짜 필요한만큼 딱 맞춰서 알려주는 유니티 강의는 베르님 영상뿐인거같아요. 정말 감사합니다.
@user-nw3gi5wh1x
@user-nw3gi5wh1x Жыл бұрын
코루틴.. 개념을 아예 모르는 건 아닌데 막상 설명하라고 해보면 잘 정리가 안되는 그런 상태였는데 1,2편 영상 보면서 이제 좀 정리가 확실히 되네요 좋은 자료 감사합니다
@bca-qb7xp
@bca-qb7xp 2 жыл бұрын
그동안 매개변수로 코루틴 함수 이름 받아서 사용했었는데 그냥 함수 호출형태로도 쓸 수 있는 거였군요. 좋은 자료 감사합니다!
@daily142857
@daily142857 3 жыл бұрын
친구가 이상하게 설명해서 마치 쓰레드처럼 병렬적으로 동작시킬 때 사용하는 건가 싶었는데 베르님 덕분에 확실히 이해했습니다!! 전달력이 대단하시네요.. 그럼 이만 친구한테 쌍욕박으러 가보겠습니다.
@syowoo
@syowoo 3 жыл бұрын
간단한 코루틴함수 멈추기는 yield break; 로 쓰면 코드가 깔끔하겠네요. 이때 까지 처음에 보여주셨던 이뮬레이터 변수 선언해서 스탑코루틴(함수())코드를 썼었거든요.
@wergia
@wergia 3 жыл бұрын
코루틴 내부에서 멈추게 하려는 거라면 yield break;가 좋습니다.
@user-ye2sc5fr5p
@user-ye2sc5fr5p 4 жыл бұрын
안녕하세요. 저는 초보 게임개발자입니다. 이 영상을 보고 실행중인 코루틴 함수를 정지하는 방법을 2가지로 이해했는데요. 1. 코루틴 함수 외부에서 코루틴 함수 정지 -> StopCoroutine(); 2. 코루틴 함수 내부에서 코루틴 함수 정지 -> yield break; 올바르게 이해한게 맞을까요?
@wergia
@wergia 4 жыл бұрын
그렇습니다. StopCoroutine은 외부에서 코루틴을 중단시키기 위한 용도이고, yield break는 일반 함수에서의 return처럼 내부에서 코루틴을 중단시키는 용도입니다.
@user-ho4lm5rm9m
@user-ho4lm5rm9m 4 жыл бұрын
제가 코루틴에 대해서 구글링으로만 대충 이해하고 사용해왔었는데, 여태까지는 StopCoroutine(TestCoroutine()); 이 방식으로 사용해왔습니다. 그런데 저런 방식으로 사용했을 때 반환하는 주소가 다르다는 것은 처음 알았네요. StopCoroutine(TestCoroutine())의 방식을 사용하는 것으로는 코루틴을 중단시키는 것이 불가능한가요? 저는 이미 이 방식으로 여태까지 사용해와서 안된다는 것도 처음 알았습니다. 그러면 되는 경우는 어떤 경우에 StopCoroutine(TestCoroutine())으로 코루틴을 중단시키는 것이 가능한건가요?
@wergia
@wergia 4 жыл бұрын
제가 아는 한도 내에서는 StopCoroutine(TestCoroutine());이라는 코드로는 어떤 코루틴도 중단시킬 수 없습니다(만약 방법이 있다면 알려주세요). TestCoroutine()을 호출하면 코루틴 함수의 반환타입대로 IEnumerator를 반환합니다. 이 IEnumerator를 기반으로 코루틴이 동작하는 것인데 TestCoroutine() 함수를 호출할 때마다 반환되는 IEnumerator는 전부 다릅니다. StartCoroutine(TestCoroutine());에서 TestCoroutine()이 반환한 IEnumerator가 IEnumerator_TestCoroutine_1이라면 StopCoroutine(TestCoroutine());에서 TestCoroutine()이 반환한 IEnumerator는 IEnumerator_TestCoroutine_2이기 때문에 앞의 코루틴을 중단시킬 수 없는 겁니다. 그래서 IEnumerator enumerator = TestCoroutine(); StartCoroutine(enumerator); StopCoroutine(enumerator); 처럼 TestCoroutine()함수가 반환하는 IEnumerator를 저장해서 코루틴을 시작시키고 중단시켜야 하는 겁니다.
@user-ho4lm5rm9m
@user-ho4lm5rm9m 4 жыл бұрын
@@wergia 아하! 제 프로젝트에서 디버그 로그를 띄워보니 프로그램의 동작에서는 문제가 없었지만 코루틴은 계속 돌아가고 있었네요! 추가적으로 궁금한 것이 생겼는데, 만약 코루틴 안에서 StartCoroutine으로 코루틴 재귀함수를 만들면, 재귀함수로 자기자신을 호출할 때마다 반환되는 IEnumerator의 주소는 달라지나요?
@wergia
@wergia 4 жыл бұрын
사실 재귀함수는 자기 자신을 호출한다기 보다는 자신과 똑같은 함수를 한 번 더 호출한다고 보는 편이 맞을 것 같습니다. 자신과 똑같은 형태의 또 다른 함수를 호출한 것이기 때문에 당연히 다른 IEnumerator를 반환합니다.
@user-tb5wi4bo6x
@user-tb5wi4bo6x Жыл бұрын
베르님 안녕하세요 제가 궁금한게있는데요 private IEnumerator Attack2(int a) 라는 코루틴 함수가있는데 정지시킬때 StopAllCoroutiens 말고 StopCoroutine으로 Attack2 코루틴만 멈출수있는 방법없을까요? StopCoroutine(Attack2(숫자)) 이렇게 하면 안되더라고요..
@wergia
@wergia Жыл бұрын
IEnumerator coroutine = Attack2(10); // 코루틴을 호출해서 반환되는 IEnumerator를 저장 StartCoroutine(coroutine); // 저장한 IEnumerator로 코루틴 동작 StopCoroutine(coroutine); // 저장한 IEnumerator로 동작시켰던 코루틴 정지 이런 식으로 하시면 해당 코루틴만 정지시킬 수 있습니다.
@wergia
@wergia Жыл бұрын
@@user-tb5wi4bo6x 네 특정한 코루틴을 정지시키기 위해서는 IEnumerator를 저장했다가 StopCoroutine 함수에 매개변수로 넣어줘야 합니다.
@user-ir6xd7im2f
@user-ir6xd7im2f 3 жыл бұрын
WaitForSecondRealtime(2f)를 넣어주고 시작했는데 2초를 기다리지 않네요 ㅜㅜ
@wergia
@wergia 3 жыл бұрын
멈추지 않을 만한 요인이 뭐가 있을까요? 코드 어떻게 작성하셨는지 알려주세요!
@user-ir6xd7im2f
@user-ir6xd7im2f 3 жыл бұрын
@@wergia //Z키를 눌렀을때 false로하고 3초 뒤에 true로 하기. bool 움직; Void Update() if(Input.Getkey(keycode. Z)) { 움직 = true; WaitForSecond(3f); 움직=false; } //밑에 더있는데 이 코드랑은연관이 없어서요약했어용.
@wergia
@wergia 3 жыл бұрын
@@user-ir6xd7im2f WaitForSecond는 Update 함수가 아닌 반환형이 IEnumerator인 코루틴 함수에서만 동작합니다. IEnumerator CoroutineFunction() { yield return new WaitForSeconds(1f); } 처럼 사용해야 동작합니다. kzbin.info/www/bejne/l5nNmmx8as19gJY 코루틴 1편 영상을 보고 해보세요!
@user-ir6xd7im2f
@user-ir6xd7im2f 3 жыл бұрын
@@wergia 그럼 wait for secondsrealtime 도 거기에서만 사용가능 하나요?
@wergia
@wergia 3 жыл бұрын
@@user-ir6xd7im2f 네 맞습니다!
@user-lq9tw7qj7n
@user-lq9tw7qj7n 3 жыл бұрын
혹시 이메일 알 수 있을까요?
@wergia
@wergia 3 жыл бұрын
wedevpublic@gmail.com입니다.
@user-lq9tw7qj7n
@user-lq9tw7qj7n 3 жыл бұрын
@@wergia 게임 개발에 관한 질문 드려도 괜찮을까요?? 잘보고있습니다.
내비게이션 시스템 1 - NavMesh | 유니티
10:05
베르의 게임 개발 유튜브
Рет қаралды 14 М.
Unity Events & Unity Actions | Unity
6:56
베르의 게임 개발 유튜브
Рет қаралды 9 М.
EVOLUTION OF ICE CREAM 😱 #shorts
00:11
Savage Vlogs
Рет қаралды 8 МЛН
Llegó al techo 😱
00:37
Juan De Dios Pantoja
Рет қаралды 56 МЛН
[Unity/MiddleClass] Scriptable Object
9:02
베르의 게임 개발 유튜브
Рет қаралды 18 М.
[Unity/MiddleClass] Make a function to move the character to the clicked position
13:09
베르의 게임 개발 유튜브
Рет қаралды 14 М.
Use Arc Instead of Vec
15:21
Logan Smith
Рет қаралды 140 М.
UI 비법서 - Rect Transform | 유니티
10:30
베르의 게임 개발 유튜브
Рет қаралды 10 М.
Unity3D RPG 게임 포트폴리오 영상
8:47
김우성
Рет қаралды 7 М.
코루틴 다루기 (1) - 코루틴 기초 | 유니티
7:40
베르의 게임 개발 유튜브
Рет қаралды 15 М.
유니티로 배우는 C# 강좌 Part 完 - 코루틴
9:57
케이디
Рет қаралды 15 М.
스트리밍 레벨 기능 구현하기 | 유니티
9:15
베르의 게임 개발 유튜브
Рет қаралды 7 М.
UI 비법서 - 버튼의 모든 것 | 유니티
11:28
베르의 게임 개발 유튜브
Рет қаралды 28 М.