Initialer Upload neues Unity-Projekt
This commit is contained in:
@ -0,0 +1,81 @@
|
||||
//======= 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user