본문 바로가기
KDT/유니티 기초

23/08/08 복습 - 내용정리

by 잰쟁 2023. 8. 8.
728x90

※헷갈리는 부분※

- SerializedField 사용하는 이유

- namespace 사용하는 이유

- main스크립트와 controller스크립트에 각각 어떤 내용들이 들어가야하는지

- CoRutine(코루틴) 사용이유 & 사용법

 

※SerializedField 사용하는 이유?

: private으로 선언한 변수 또는 비공개 필드를 인스펙터(inspector)에서 접근 가능하게 해주기 위해!

: 단, 외부스크립트에서 수정 불가!

 

※ namespace 사용하는 이유?

: 스크립트 클래스의 이름이 같아 생기는 충돌 방지, 클래스들을 그룹별로 묶어서 관리!

: namespace안의 클래스들을 사용할 수 있음

(참고 사이트)

https://coderzero.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B0-C-%EA%B0%95%EC%A2%8C-12-%EB%84%A4%EC%9E%84%EC%8A%A4%ED%8E%98%EC%9D%B4%EC%8A%A4Namespaces-using

 

※ Main스크립트와 Controller 스크립트

:Main 스크립트 - GameObject가 움직일 수 있게 판을 깔아주는 역할인 것 같음..!  (ex) Ray 쏘기

:Controller 스크립트 - GameObject가 실질적으로 움직이도록 하는 역할..! (ex) Move 하기

 

※ CoRoutine(코루틴)

: Update()문 - 원하든 원하지 않든 매프레임마다 반복적으로 코드실행

: ConRoutine()문 - 원할때만! 반복적으로 코드실행

(참고 사이트)

https://coding-of-today.tistory.com/171

 

오늘 배웠던 코드로 예시!

 //hero가 무기로 몬스터를 칠때까지(0.1초 이후) 이펙트 효과 생성
        private IEnumerator CoAttack()
        {
            //yield return null;  : 다음 프레임 시작
            yield return new WaitForSeconds(0.1f);  //0.1초 이후         
            Debug.Log("<color=red>Impact!!!!!</color>");

            //0.83 - 0.1
            yield return new WaitForSeconds(0.73f);

            Debug.Log("Attack 애니메이션 종료");

            this.anim.SetInteger("State", 0);  //공격 후 기본동작으로 전환
        }