[C#, 유니티] Unity3D_RPG 상호작용
2022. 8. 25. 17:29ㆍ코딩 2막 <C#개념편>
728x90
플레이어와 상호작용하는 오브젝트
RPG게임의 경우 플레이어가 특정 키를 눌렀을 때 앞에 있는 NPC와 대화를 하거나
아이템을 먹을 수 있는 등 다양한 상호작용할 수 있게 만들 수 있다
스크립트
1. IInteractable.cs
상호작용이 가능한 행동 하나로 관리(인터페이스 이용)
여러가지 함수 내에서 재정의하여 쓸 수 있음
1
2
3
4
5
6
7
8
9
10
11
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public interface IInteractable
{
void OnFocused();
void OnUnFocused();
void Interaction();
}
|
cs |
2. Box.cs
박스(오브젝트)와 상호작용하기 위한 작업
플레이어는 박스와 상호작용을 할 때
아이템을 습득하는 것으로 재정의함
그리고 더이상 아이템이 없어서 컴포넌트가 사라지게 했음(Destroy(this))
박스에 파티클을 만들어 두고 OnFocused()와 OnUnFocused()를 써서 파티클이 상호작용에 따라 적용되도록 할 수 있음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Box : MonoBehaviour, IInteractable
{
public void Interaction()
{
Debug.Log("박스와 상호작용");
QuestManager.Instance.ProgressQuest(Quest.Type.Gather, "Coin", 5);
Destroy(this);
}
public void OnFocused()
{
}
public void OnUnFocused()
{
}
}
|
cs |
npc와 상호작용하면 대화창이 뜨는 인터페이스를 만들 수도 있는데 대화 다이얼로그를 통해 적용시킬 수 있다
대화 다이얼로그는 내일 더 자세히 설명하겠습니다
박스와 상호작용하는 결과물
공감해주셔서 감사합니다
728x90
'코딩 2막 <C#개념편>' 카테고리의 다른 글
[C#, 유니티] Unity3D_RPG 몬스터 (FSM, ViewDector) (0) | 2022.08.31 |
---|---|
[C#, 유니티] Unity3D_RPG ScriptableObject (Conversation) (0) | 2022.08.26 |
[C#, 유니티] Unity3D_RPG 상태패턴머신 (디자인패턴) (4) | 2022.08.24 |
[C#, 유니티] Unity3D_RPG 애니메이션 (2) | 2022.08.23 |
[C#, 유니티] Unity3D_RPG 레벨디자인, 시네머신 그리고 에니메이션 (1) | 2022.08.22 |