본문 바로가기

수업/Unity 2주 프로젝트 및 공부

Unity 프로젝트 및 공부 9일차

<오늘 진행할 일>

어제의 문제점 고치기

근접무기 클래스 나누기


<오늘의 공부>

1. 좌표가 이상하다면 해당 오브젝트의 Transform값을 인스펙터창에서 먼저 확인해보자.

 

2. abstract : 추상 코루틴

: 현재 이 함수는 필요하지만 내(부모 클래스)가 만들지는 않을것이니 자식 클래스에서 완성시켜라

필요한 기능이지만 내용이 각기 다를 때 상속받은 자식클래스에서 완성시키도록 하게 만듦 == 미완성

protected abstract IEnumerator IncompleCoroutine();

미완성인 함수가 있기 때문에 클래스 자체도 미완성인 클래스가 되버린다.

미완성인 클래스임을 알려주기 위해 클래스 앞에도 abstract가 붙어야 한다.

public abstract class IncompleClass : MonoBehaviour

미완성 클래스이기에 오브젝트에 컴포넌트로 추가 할 수가 없다.

└> Update가 실행이 되지 않는다.

 

3. virtual : 가상 함수

: 완성 함수이지만 추가 편집이 가능한 함수

/*부모 클래스에 있는 함수*/
public virtual void VirtualFunction(bool isTure)
{
   ···(내용)
}


/*자식 클래스에 있는 함수*/
public override void VirtualFunction(bool isTure)
{
   //부모 클래스에 있는 가상 함수의 내용을 호출 하는 것
   base.VirtualFunction(isTure);
   
   ···(추가 내용)
}

<오늘 진행한 일>

 

1. 어제 무기 흔들림에 있어 Y축 문제 고치기

: 알고보니 게임오브젝트의 Transform의 좌표가 (0,0,0)이 아닌 (0,-1,0)이어서 생긴 문제였습니다.

마우스가 움직일때 마다 현재좌표가 움직이는데 이것이 (0,0,0)이 아니었기에 Y값이 0값 중점으로 (0 ± 마우스 움직임) 이동되서 생긴 문제였기에 오브젝트의 Transform을 (0,0,0)으로 옮기고, 부모 오브젝트의 Transform값이 옮겨졌기에 자식 오브젝트의 Transform값을 있어야할 위치로 수정하였습니다.

 

2. 근접 무기의 다양성을 위해 클래스 나누기

: 맨손 이외에 도끼, 곡괭이 같은 다양한 근접 무기를 사용함에 있어, 공통적인 부분은 근접무기 클래스로 빼내어 각 손, 도끼 등의 클래스에게 상속시켜 사용되도록 만들었습니다.

부모 클래스인 근접무기 클래스는 추상클래스로하여 각 무기 스크립트의 기능에 맞게 오버라이드 되도록 구현했습니다.

 

 

 


- 참고영상 케이디의 유튜브

https://www.youtube.com/playlist?list=PLUZ5gNInsv_Nzex8Cvxce_1zjUf0cNWY9

 

유니티 강좌 [3D FPS 서바이벌 생존] - YouTube

유니티 강좌 - 3D 게임 제작 스킬을 배워보는 강좌

www.youtube.com