Add WeaponFeedback component and AddressableManagerWindow meta file
- Implemented WeaponFeedback class for handling weapon-related feedbacks such as hit effects and attack sounds. - Added meta file for AddressableManagerWindow to manage addressable assets. - Included a new jump.data file for profiler data.
This commit is contained in:
64
Assets/_Game/Scripts/Feedback/WeaponFeedback.cs
Normal file
64
Assets/_Game/Scripts/Feedback/WeaponFeedback.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using UnityEngine;
|
||||
using MoreMountains.Feedbacks;
|
||||
|
||||
namespace BaseGames.Feedback
|
||||
{
|
||||
/// <summary>
|
||||
/// 武器反馈组件,挂载在武器 HitBox Prefab 根节点上。
|
||||
/// 实现 IFeedbackPlayer,专注于武器本地反馈(命中粒子、击打音效、破风等)。
|
||||
/// 角色级别的全局反馈(震屏、手柄振动)仍由 PlayerFeedback 负责。
|
||||
/// </summary>
|
||||
public class WeaponFeedback : MonoBehaviour, IFeedbackPlayer
|
||||
{
|
||||
[Header("命中反馈")]
|
||||
[SerializeField] private MMF_Player _onHitLight;
|
||||
[SerializeField] private MMF_Player _onHitMedium;
|
||||
[SerializeField] private MMF_Player _onHitHeavy;
|
||||
|
||||
[Header("攻击破风")]
|
||||
[SerializeField] private MMF_Player _onAttackWhoosh;
|
||||
|
||||
[Header("通用命名预设")]
|
||||
[SerializeField] private NamedFeedbackPreset[] _namedPresets;
|
||||
|
||||
[System.Serializable]
|
||||
private struct NamedFeedbackPreset
|
||||
{
|
||||
public string presetId;
|
||||
public MMF_Player player;
|
||||
}
|
||||
|
||||
// ── IFeedbackPlayer 实现 ──────────────────────────────────────────────
|
||||
|
||||
public void PlayHit(HitWeight weight)
|
||||
{
|
||||
var player = weight switch
|
||||
{
|
||||
HitWeight.Light => _onHitLight,
|
||||
HitWeight.Heavy => _onHitHeavy,
|
||||
_ => _onHitMedium,
|
||||
};
|
||||
player?.PlayFeedbacks();
|
||||
}
|
||||
|
||||
public void PlayAttackWhoosh() => _onAttackWhoosh?.PlayFeedbacks();
|
||||
|
||||
public void TriggerPreset(string presetId)
|
||||
{
|
||||
if (_namedPresets == null) return;
|
||||
foreach (var p in _namedPresets)
|
||||
if (p.presetId == presetId) { p.player?.PlayFeedbacks(); return; }
|
||||
}
|
||||
|
||||
// ── 武器上不适用的反馈,空实现 ────────────────────────────────────────
|
||||
public void PlayParrySuccess() { }
|
||||
public void PlayTakeHit() { }
|
||||
public void PlayDeath() { }
|
||||
public void PlayHeal() { }
|
||||
public void PlayLandImpact() { }
|
||||
public void PlayJumpLaunch() { }
|
||||
public void PlayFootstep() { }
|
||||
public void PlaySFXById(string sfxId) { }
|
||||
public void PlayFormSwitch(int formIndex){ }
|
||||
}
|
||||
}
|
||||
11
Assets/_Game/Scripts/Feedback/WeaponFeedback.cs.meta
Normal file
11
Assets/_Game/Scripts/Feedback/WeaponFeedback.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: adb4af2f574f356449634bc130f94592
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user