This document is about: FUSION 2
SWITCH TO

Interactions

概述

互動物件是玩家可以與之互動的場景物件。當玩家瞄準與Interaction層有碰撞器並包含執行IInteraction介面的元件的物件時,會觸發互動流程。 所有玩家互動都由Interactions元件處理。

物品盒

物品箱散佈在地圖四處,為玩家提供武器、手榴彈、彈藥、盾牌包、健康包和噴射背包燃料。盒子裡的物品是玩家打開盒子時產生的常規拾取物。物品是基於物品框預製件中指定的概率隨機選擇的。一段時間後,盒子會自動關閉,在冷卻到期之前無法進一步打開。

item box

拾取物

可以透過互動動作拾取的物品,或者在玩家按下拾取按鈕時自動拾取的物品。拾取物有兩種類型:

  • 物品盒中的拾取物
  • 玩家掉落的拾取物(武器、手榴彈)。
pickup

武器掉落

在BR200中,玩家可以將武器扔到地上。掉落是透過按住互動鍵(F),拾取與已經佔用的武器槽相匹配的武器來啟動的,或者當玩家死亡時,玩家的所有武器都會掉落。

當開始掉落時,會生成一個特殊的DynamicPickup物件。DynamicPickup充當玩家可以丟棄的任何物件的包裝器。它包含了掉落的基本設定(特別是NetworkRigidbody3D元件)。由於BR200中的每件武器都是一個單獨的網路物件,因此整個武器遊戲物件都是DynamicPickup的上層,並被拋向世界。這確保了當另一名玩家拿起武器時,它會保留前主人的屬性,如視覺效果、彈藥或任何其他武器狀態。

weapon drop

武器透過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元件處理,並被完全計算(在刷新準確的動畫附加元件中不支持動畫事件)。只需檢查腳部變換位置的變化,即可檢測腳部實際接觸地面的時間。當檢測到接觸時,會發射一個小的光線投射以獲取有關表面的資訊。指派給表面碰撞器遊戲物件的Unity標籤用於區分不同的表面類型。

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