기록 보관소

[Unity/유니티] 기초-3D 쿼터뷰 액션 게임: 아이템 만들기[B40] 본문

유니티 프로젝트/3D 쿼터뷰 액션게임

[Unity/유니티] 기초-3D 쿼터뷰 액션 게임: 아이템 만들기[B40]

JongHoon 2022. 3. 18. 22:15

개요

유니티 입문과 독학을 위해서 아래 링크의 골드메탈님의 영상들을 보며 진행 상황 사진 또는 캡처를 올리고 배웠던 점을 요약해서 적는다.

현재는 영상들을 보고 따라하고 배우는 것에 집중할 것이며, 영상을 모두 보고 따라한 후에는 개인 프로젝트를 설계하고 직접 만드는 것이 목표다.

https://youtube.com/playlist?list=PLO-mt5Iu5TeYI4dbYwWP8JqZMC9iuUIW2 

 

유니티 강좌 기초 채널 Basic

유니티 개발을 처음 시작하시는 입문자 분들을 위한 기초 채널. [ 프로젝트 ] B00 ~ B12 (BE1) : 유니티 필수 기초 B13 ~ B19 (BE2) : 2D 플랫포머 B20 ~ B26 (BE3) : 2D 탑다운 대화형 RPG B27 ~ B37 (BE4) : 2D 종스크롤

www.youtube.com


3D 쿼터뷰 액션 게임: 아이템 만들기[B40]

1. 아이템 준비

에셋에서 제공한 프리펩 중 아이템을 하나 끌어다 생성
느낌있게 아이템 오브젝트의 위치, 각도를 조절해주자


2. 라이트 이펙트

부모 오브젝트에서 Empty 생성
Light 컴포넌트 추가. 망치 아래를 보면 망치에도 빛이 비춰지고 있다

  • Type : 광원 타입(Spot, Directional, Point, Area)
  • Intensity : 빛의 세기
  • Range : 빛의 범위

3. 파티클 이펙트

마찬가지로 Empty 생성
Particle System 컴포넌트 추가. 추가하니 자홍색의 파티클 이펙트가 나고있다

  • 자홍색 파티클 이펙트는 재질을 못찾았다는 의미다. 그래서 컴포넌트 추가 직후에 저런 이펙트가 된다.
  • 재질을 추가하는 방법은 목록 중 Renderer에서 Material을 찾아서 연결하면 된다.

재질 추가
Emission 설정

  • Emission : 파티클 입자 출력양

Shape 설정
Rotation을 변경해 위쪽을 향하게 만들었다

  • Shape : 파티클 입자 출력 모양. 위 캡처의 파란색 레이어 모양에따라서 파티클 입자가 출력된다.

Color Over Lifetime 설정

  • Color Over Lifetime : 시간에 따른 색상 변화. 위 캡처를 보면 파티클 입자가 위쪽으로 갈수록 주황색에서 노란색, 흰색으로 바뀌며 점점 투명해진다.
  • 에디터에서 위쪽의 화살표는 알파값을 설정하고, 아래쪽 화살표는 RGB값을 설정할 수 있다. 빈공간에 클릭하면 화살표가 추가되어 위 캡처처럼 중간에 다른 색상으로 바뀌도록 변경할 수 있다.

Size Over Life Time 설정. Inspector 창 아래 칸에서 커브 모양을 설정할 수 있다.

  • Size Over Lifetime : 시간에 따른 크기 변화.

Limit Velocity Over Lifetime 설정

  • Limit Velocity Over Lifetime : 시간에 따른 속도 제한. Drag는 저항 값이다. 저항값을 올리게되면 파티클 입자가 올라가는 속도에 저항이 생겨 위 캡처처럼 높이가 낮아진다.

Start Lifetime과 Start Speed

  • Start Lifetime : 입자 생존 시간
  • Start Speed : 입자 시작 속도

Start Lifetime 설정
Start Speed도 바꿔주었다

  • 너무 일정하게 파티클이 올라온다면 옆의 화살표를 눌러 랜덤 값의 범위를 정해 랜덤하게 파티클이 생성되게 만들 수 있다.

4. 로직 구현

Rigidbody와 SphereCollider 2개 컴포넌트 추가 및 설정

  • 콜라이더가 2개 있는데 내부에 있는 작은 콜라이더는 물리 충돌용이고, 외부의 큰 콜라이더는 트리거를 발동시키기 위해 있다.

Item 스크립트 파일 생성

//Item 스크립트 파일

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Item : MonoBehaviour {
    public enum Type { Ammo, Coin, Grenade, Heart, Weapon };
	public Type type;
	public int value;

	void Update() {
		transform.Rotate(Vector3.up * 10 * Time.deltaTime);	//아이템 회전
	}
}

enum

  • enum : 열거형 타입(타입 이름 지정 필요)

아이템 더 추가
실행하니 이펙트도 잘 나오고 돈다

  • 추가한 아이템들은 유형에 맞게 타입을 설정하고, Value를 정해준다.

5. 프리펩 저장

태그 추가

  • 장착 가능한 무기는 Weapon으로 설정하고, 수류탄처럼 장착할 수 없는 무기는 Item으로 설정한다. 즉, 위 아이템 9가지 중에서 망치, 권총, 기관총은 Weapon, 나머지는 Item으로 태그를 설정한다.

프리펩 폴더를 생성해 아이템들을 프리펩으로 추가
프리펩들 위치는 0 0 0으로 설정한다