This document is about: FUSION 2
SWITCH TO

상호 작용

개요

상호 작용 객체는 플레이어가 상호작용할 수 있는 씬 객체입니다. 상호 작용 프로세스는 플레이어가 Interaction 레이어에 충돌기가 있고 IInteraction 인터페이스를 구현하는 컴포넌트가 포함된 객체를 겨냥할 때 트리거 됩니다.
모든 플레이어 상호 작용은 Interactions 컴포넌트에 의해 처리됩니다.

아이템 상자

아이템 상자는 플레이어에게 무기, 수류탄, 탄약, 방패 팩, 헬스 팩 및 제트팩 연료를 제공하기 위해 맵 주변에 흩어져 있습니다. 상자 안의 아이템은 플레이어가 상자를 열 때 생성되는 정기적인 픽업입니다. 아이템 상자 프리팹에 지정된 확률에 따라 아이템이 무작위로 선택됩니다. 상자는 일정 시간이 지나면 자동으로 닫히고 쿨다운이 만료될 때까지 추가로 열 수 없습니다.

아이템 상자

픽업

인터랙션 액션으로 픽업할 수 있는 아이템이나 플레이어가 픽업 버튼을 누르면 자동으로 픽업되는 아이템이 있습니다. 픽업에는 두 가지 종류가 있습니다:

  • 아이템 상자에 있는 픽업
  • 플레이어가 떨어뜨린 픽업(무기, 수류탄).
픽업

무기 떨어뜨리기

BR200에서 플레이어는 무기를 땅에 떨어뜨릴 수 있습니다. 드롭은 상호작용 키(F)를 잡고 이미 점유된 무기 슬롯과 일치하는 무기를 집어 들거나 플레이어가 사망하면 플레이어의 모든 무기를 드롭합니다.

드롭이 시작되면 특별한 DynamicPickup 오브젝트가 생성됩니다. DynamicPickup은 플레이어가 드롭할 수 있는 모든 객체의 포장지 역할을 합니다. 드롭을 위한 필수 설정(특히 NetworkRigidbody3D 컴포넌트)이 포함되어 있습니다. BR200의 모든 무기는 별도의 네트워크 객체이기 때문에 전체 무기 게임 객체는 DynamicPickup에 보호되어 땅에 버려집니다. 이를 통해 다른 플레이어가 해당 무기를 픽업할 때 이전 소유자의 속성(비주얼, 탄약 또는 기타 무기 상태)을 유지할 수 있습니다.

무기 떨어뜨리기

무기는 IDynamicPickupProvider 인터페이스를 통해 DynamicPickup에 필수 정보를 제공합니다. 예를 들어 낙하 전에 활성화된 무기 충돌기나 인터랙션 UI에 사용될 이름과 설명 등입니다.

C#

public interface IDynamicPickupProvider
{
    public string    Name                { get; }
    public string    Description         { get; }
    public Transform InterpolationTarget { get; }
    public Collider  Collider            { get; }
    public float     DespawnTime         { get; }
}

새 주인이 무기를 집어 들면 DynamicPickup에서 무기물을 꺼내 무기 목록에 추가하고 입력 권한을 무기에 부여하기만 하면 됩니다.

발자국

발 디딤 소리는 AgentFootsteps 컴포넌트에서 처리되며 완전히 계산됩니다(틱 정확 애니메이션 애드온에는 애니메이션 이벤트가 지원되지 않음). 발 변형 위치 변화는 발이 실제로 땅에 닿았을 때를 단순히 확인하기만 하면 됩니다. 터치가 감지되면 표면에 대한 정보를 얻기 위해 작은 레이 캐스트가 발사됩니다. 표면 충돌기 게임 객체에 할당된 유니티 태그는 다양한 표면 유형을 구분하는 데 사용됩니다.

C#

public class FootstepSetup : ScriptableObject
{
    [SerializeField]
    private AudioSetup _fallbackWalkSound;
    [SerializeField]
    private AudioSetup _fallbackRunSound;
    [SerializeField]
    private FootstepData[] _footsteps;

    [Serializable]
    private class FootstepData
    {
        public string Tag;
        public AudioSetup SoundWalk;
        public AudioSetup SoundRun;
    }
}

모든 에이전트는 각 표면에 대해 어떤 소리를 재생해야 하는지를 지정하는 지정된 풋스텝 설정을 가질 수 있습니다. 풋스텝 설정에는 산책 또는 달리기에 대한 변형도 포함되어 있으므로 이동 속도에 따라 다른 소리 또는 다른 볼륨을 달성할 수 있습니다.

노트: 현재 생성된 레벨에서는 기본 표면 및 물소리만 사용됩니다.
Back to top