일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 낙서
- 생각
- 몬드
- Fanart
- 악마쨩
- unity3d
- Psyche
- 애니메이션
- 무리하지말자
- AeOngClickeer
- art
- 일기장
- 애옹
- 고민
- TextMeshPro
- 카카오워크
- 씹덕인가봐요
- 류와꾸수
- TMP
- 애옹개발자
- 만화
- Reimport
- 나히다
- c#
- 퇴끼
- Unity
- Unity2D
- Assembly-CSharp.dll
- 움짤
- PunRPC
- Today
- Total
히가츠류의 보금자리
코루틴(Coroutine)을 이용하여 1초 마다 오브젝트 소환 본문
오늘은 코루틴(Coroutine)을 이용해서 1초 마다 일반 고양이 오브젝트(normalCat Object)를 소환&스폰(Spawn)하는 작업을 진행했다.
yield return new WaitForSeconds()과 yield return new WaitForSecondsRealtime()의 차이는
WaitForSeconds()는 게임 시간이 0.5배속이나 2배속되는 것에 영향을 받아 느려졌다 빨라졌다 할 수 있고,
WaitForSecondsRealtime()는 게임 배속에 관련없이 무조건적으로 현실시간을 따라간다는 것이다. (배속X)
맨 밑에 new Vector3 (0, 0);에는 0부분에 각각 "x좌표"와 "y좌표"를 넣으면 된다.
나는 아직 소환 범위를 정하지 않아서 0,0으로 넣어뒀다.
혹시 위치를 (x= 0~100, y= 0~300) 등으로 정하고 싶다면
랜덤 함수를 사용하여
new Vector3 (Random.range(0,101) , Random.range(0,301)); //0~100, 0~300
로 설정하면 된다.
[사용한 함수(Function)와 형식(Type) 또는 ]
-
오브젝트 생성 (Object Create)
-
Instantiate(Object); //형식 다양 //Instantiate(Object, Transform); //Instantiate(Object, Vector3, Quaternion);
-
void normalCatSpawn()
{
GameObject nowCat = Instantiate(normalCatObject); //소환해서 GameObject 변수에 담아둠.
nowCat.transform.position = new Vector3(x, y); //x와 y값을 랜덤으로 설정해주면 됨.
}
-
-
코루틴(Coroutine) 사용
-
StartCoroutine(CatSpawn());
-
IEnumerator CatSpawn()
{
normalCatSpawn(); //일반 고양이를 랜덤적으로 소환하는 함수.
yield return new WaitForSecondsRealtime(1.0f);
}
-
-
오브젝트 생성 후 포지션 설정
-
myCat.transform.position = new Vector3(x,y);
-
myCat.transform.rotation = new Quaternion(x,y,z,w);
-
'Programming > Unity 2D' 카테고리의 다른 글
ScrollView(ScrollRect)와 Button의 드래그/스크롤(OnDrag)에 대한 문제 해결법 (6) | 2021.04.25 |
---|---|
Unity Sprite Mask //Where is My cat? (0) | 2020.03.16 |