unityzgy/Assets/ThirdPackages/VRPackage/VRTK/Examples/ExampleResources/Scripts/FireExtinguisher_Sprayer.cs
ayuan9957 bf12e02276 feat: 多语言本地化系统 - 支持中/英/法/俄实时切换
- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg)
- LoginPanel: InputField placeholder本地化、字体颜色保持
- HistoryPanel: 用时数据本地化、placeholder本地化
- RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建)
- AppraiseWindowBase: 评价等级本地化、操作消息重建
- EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized
- StudentOperateRecorder: 新增InjectOperateMsgLocalized方法
- LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选
- 字体切换时保留颜色和verticalOverflow
2026-07-16 10:05:59 +08:00

54 lines
1.4 KiB
C#

namespace VRTK.Examples
{
using UnityEngine;
public class FireExtinguisher_Sprayer : VRTK_InteractableObject
{
public FireExtinguisher_Base baseCan;
public float breakDistance = 0.12f;
public float maxSprayPower = 5f;
private GameObject waterSpray;
private ParticleSystem particles;
public void Spray(float power)
{
if (power <= 0)
{
particles.Stop();
}
if (power > 0)
{
if (particles.isPaused || particles.isStopped)
{
particles.Play();
}
#if UNITY_5_5_OR_NEWER
var mainModule = particles.main;
mainModule.startSpeedMultiplier = maxSprayPower * power;
#else
particles.startSpeed = maxSprayPower * power;
#endif
}
}
protected override void Awake()
{
base.Awake();
waterSpray = transform.Find("WaterSpray").gameObject;
particles = waterSpray.GetComponent<ParticleSystem>();
particles.Stop();
}
protected override void Update()
{
base.Update();
if (Vector3.Distance(transform.position, baseCan.transform.position) > breakDistance)
{
ForceStopInteracting();
}
}
}
}