[TIL] 38 3D 강의, 팀과제 ⭐⭐⭐
카테고리: Til
유니티 숙련주차 9일차, 팀과제
[o] 알고리즘 문제 - 45
[o] 강의 듣기 - 2개 복습하기
[o] 반별 강의
[X] 다른반 강의 듣기
[X] 다른반 발표 보기
1. 팀과제
강의 코드를 베이스로 하였고
- 원거리 적 추가
- 적 체력 낮으면 도망가기
- 원거리는 도망가다가 사거리 안에 들어오면 다시 공격
- 몹젠 5마리
- 시간 지나면 기지로 어그로
- (추가하기) 죽이면 나눠져서 생성
2. 코루틴
코루틴은 함수의 실행을 일시 중지하고, 이후에 다시 재개할 수 있는 기능을 제공합니다.
예시) 무적상태 5초
using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour
{
bool invincible = false;
void Start()
{
StartCoroutine(InvincibilityCoroutine());
}
IEnumerator InvincibilityCoroutine()
{
invincible = true;
yield return new WaitForSeconds(5f);
invincible = false;
}
}
1) Enumerator
Enumerator는 IEnumerator 라는 인터페이스를 구현해야 합니다. IEnumerator 인터페이스는 Current (속성), MoveNext() (메서드), Reset() (메서드) 등 3개의 멤버로 이루어져 있는데, Enumerator가 되기 위해서는 Current와 MoveNext() 를 반드시 구현해야 합니다. 이를 통해 유니티의 DelayedCallManager가 등록하고 있다가 다음 단계에 실행하는 방식으로 구현되어 있습니다.
2) Yeild 종류
- yield return null :
다음 프레임
까지 대기- yield return new WaitForSeconds(float) : 입력한
초(sec)
만큼 대기- yield return new WaitForSecondsRealtime(float) : Timescale영향없는
실제 시간
기준 초 대기- yield return new WaitFixedUpdate() : 다음 프레임의
FixedUpdate
까지 대기- yield return new WaitForEndOfFrame() : 모든
랜더링 작업이 끝날 때
까지 대기- yield return startCoroutiune(string) : 입력한
다른 코루틴이 끝날 때
까지 대기- yield return new www(string) : 입력한
웹 통신 작업이 끝날 때
까지 대기- yield break : 코루틴 종료
코루틴은 StopCoroutine과 StopAllCoroutines를 이용하여 코루틴을 정지가능하며
코루틴을 소유하고 있는 게임오브젝트를 정지하거나 파괴하는 경우에도 종료됩니다. 단, 컴포넌트를 .enabled를 false로 하는 경우 꺼지지 않습니다.
3. 카메라 뷰
카메라 Projection = Orthographic -> 원근감 X
1) 탑다운
2D, 3D : X축 45도이상
2) 사이드
원근법 무시 (2D, 3D : Orthographic, 캐릭터 follow)
3)1인칭 주인공 시점
3D, 캐릭터 Follow
4) 3인칭 백뷰(숄더뷰)
3D 주로, 캐릭터 후방 상공에서 X축 살짝 회전
5)아이소메트릭(쿼터뷰)
원근법 무시 + x축 30도 y축 45도
댓글남기기