본문 바로가기

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

Unity 프로젝트 및 공부 12일차

<오늘 진행할 일>

플레이어 스테이터스

채광시 아이템(돌맹이) 생성 및 습득


<오늘의 공부>

1. 배열을 이용할 때, 인덱스값을 변수로 이용하자.

: 배열에 접근할 때 인덱스 값이 필요한데, 숫자로만 되어있으면 각 인자값을 넣었을때 어디에 뭐가 있는지 정확히 알 수가 없다. 그렇기에 변수를 상수화 시켜서 배열에 접근하자.

private string[] animals;

//const로 외부 변경이 불가능하게 만들어줌
private const int tiger = 0, dog = 1, cat = 2, fox = 3;

private string currentAnimal;

//ex. 호랑이 대입
currentAnimal = animals[tiger];

//ex. 여우 대입
currentAnimal = animals[fox];

 

2. 예외처리

: 스테이터스 예외처리를 할 때, 증가 또는 감소 시 스테이터스의 최대치와 0미만이 되지않게 예외처리를 잘해주자.

ex)

private int playerHp;

public void CrashMonster(int _damage)
{
	//플레이어 HP에서 데미지를 뺀 값이 0이상일 경우 그냥 hp에서 데미지 값을 뺀다.
	if (playerHp - _damage > 0) playerHp -= _damage;
    //뺀 값이 0미만일 경우 hp는 0으로 만들어 준다.
	else playerHp = 0;
}

 

3. Sprite

: Image는 캔버스에만 띄울 수 있고, 캔버스를 벋어나면 이미지가 있어도 보여지지가 않는다.

Sprite는 캔버스 필요없이 월드상에 이미지를 직접 출력할 수 있다.

Image ⊃ Sprite

 

4. ScriptableObject

: 게임오브젝트의 컴포넌트에 넣을 필요없는 오브젝트를 만들기 위해 사용

Monobehaviour은 오브젝트의 컴포넌트로 있어야지 효력을 발하는데, ScriptableObject는 굳이 오브젝트에 붙일 필요가 없다.

 

5. [CreateAssetMenu(fileName = "New File", menuName = "New File/file")]

:

[CreateAssetMenu(fileName = "New File", menuName = "New File/file")]
public class File : ScriptableObject
{
    public enum FileType
    {
        A,
        B,
        C
    }
    public FileType fileType;
    
    public string fileName;
}

[System.Serialized]와 같이 클래스 위에 넣으면 Unity에서 우측 클릭으로 C#스크립트를 생성하는 Create 안에 'New File'이라는 이름으로 생성될 수 있게 생겨난다.

생성하면 인스펙터 창으로만 수정할 수 있는 파일이 만들어진다.

 

6. transform.TransformDirection(Vector3)

: Vector3는 월드 좌표이고 transform은 로컬좌표이기 때문에 TransformDirection으로 월드 좌표를 로컬 좌표로 바꿔준다.

transform.forward == transform.TransformDirection(Vector3.forward)

 

7. Text안의 특정 글자만 색바꾸기

: 색깔을 바꾸자 == 색깔을 <color=Yellow>바꾸자</color>


<오늘 진행한 일>

 

1. 플레이어 스테이터스

: 목마름, 배고픔은 시간에 따라 줄어들게 만들었고, 스테미나 같은 경우는 점프, 달리기와 같은 행동을 할때 줄어들으며 스테미나를 줄이는 행동을 안하고있으면 (걷기 등은 스테미나 소모X) 몇 초뒤에 스테미나가 다시 차오르도록 구현했습니다.

플레이어 스테미나가 없을 경우에는 스테미나가 필요한 행동(달리기, 점프)은 실행이 불가하도록 처리했습니다.

 

 

2. 돌맹이 생성 및 습득

: 돌이 부서지면 바로 돌맹이들이 생성되게 구현했습니다.

생성된 돌맹이는 Raycast로 부딪혔을 시에 획득 문구가 나타나고, 문구가 나타난 상황에서 E키를 눌러 획득하도록 구현했습니다.

 

 

 


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

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

 

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

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

www.youtube.com