- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
82 lines
1.7 KiB
C#
82 lines
1.7 KiB
C#
//======= Copyright (c) Valve Corporation, All rights reserved. ===============
|
|
//
|
|
// Purpose: Target that sends events when hit by an arrow
|
|
//
|
|
//=============================================================================
|
|
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
using System.Collections;
|
|
|
|
namespace Valve.VR.InteractionSystem
|
|
{
|
|
//-------------------------------------------------------------------------
|
|
public class ArcheryTarget : MonoBehaviour
|
|
{
|
|
public UnityEvent onTakeDamage;
|
|
|
|
public bool onceOnly = false;
|
|
public Transform targetCenter;
|
|
|
|
public Transform baseTransform;
|
|
public Transform fallenDownTransform;
|
|
public float fallTime = 0.5f;
|
|
|
|
const float targetRadius = 0.25f;
|
|
|
|
private bool targetEnabled = true;
|
|
|
|
|
|
//-------------------------------------------------
|
|
private void ApplyDamage()
|
|
{
|
|
OnDamageTaken();
|
|
}
|
|
|
|
|
|
//-------------------------------------------------
|
|
private void FireExposure()
|
|
{
|
|
OnDamageTaken();
|
|
}
|
|
|
|
|
|
//-------------------------------------------------
|
|
private void OnDamageTaken()
|
|
{
|
|
if ( targetEnabled )
|
|
{
|
|
onTakeDamage.Invoke();
|
|
StartCoroutine( this.FallDown() );
|
|
|
|
if ( onceOnly )
|
|
{
|
|
targetEnabled = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//-------------------------------------------------
|
|
private IEnumerator FallDown()
|
|
{
|
|
if ( baseTransform )
|
|
{
|
|
Quaternion startingRot = baseTransform.rotation;
|
|
|
|
float startTime = Time.time;
|
|
float rotLerp = 0f;
|
|
|
|
while ( rotLerp < 1 )
|
|
{
|
|
rotLerp = Util.RemapNumberClamped( Time.time, startTime, startTime + fallTime, 0f, 1f );
|
|
baseTransform.rotation = Quaternion.Lerp( startingRot, fallenDownTransform.rotation, rotLerp );
|
|
yield return null;
|
|
}
|
|
}
|
|
|
|
yield return null;
|
|
}
|
|
}
|
|
}
|