Initialer Upload neues Unity-Projekt
This commit is contained in:
@ -0,0 +1,87 @@
|
||||
//======= Copyright (c) Valve Corporation, All rights reserved. ===============
|
||||
//
|
||||
// Purpose: Can be attached to the controller to collide with the balloons
|
||||
//
|
||||
//=============================================================================
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
namespace Valve.VR.InteractionSystem
|
||||
{
|
||||
//-------------------------------------------------------------------------
|
||||
public class BalloonColliders : MonoBehaviour
|
||||
{
|
||||
public GameObject[] colliders;
|
||||
private Vector3[] colliderLocalPositions;
|
||||
private Quaternion[] colliderLocalRotations;
|
||||
|
||||
private Rigidbody rb;
|
||||
|
||||
//-------------------------------------------------
|
||||
void Awake()
|
||||
{
|
||||
rb = GetComponent<Rigidbody>();
|
||||
|
||||
colliderLocalPositions = new Vector3[colliders.Length];
|
||||
colliderLocalRotations = new Quaternion[colliders.Length];
|
||||
|
||||
for ( int i = 0; i < colliders.Length; ++i )
|
||||
{
|
||||
colliderLocalPositions[i] = colliders[i].transform.localPosition;
|
||||
colliderLocalRotations[i] = colliders[i].transform.localRotation;
|
||||
|
||||
colliders[i].name = gameObject.name + "." + colliders[i].name;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
void OnEnable()
|
||||
{
|
||||
for ( int i = 0; i < colliders.Length; ++i )
|
||||
{
|
||||
colliders[i].transform.SetParent( transform );
|
||||
|
||||
colliders[i].transform.localPosition = colliderLocalPositions[i];
|
||||
colliders[i].transform.localRotation = colliderLocalRotations[i];
|
||||
|
||||
colliders[i].transform.SetParent( null );
|
||||
|
||||
FixedJoint fixedJoint = colliders[i].AddComponent<FixedJoint>();
|
||||
fixedJoint.connectedBody = rb;
|
||||
fixedJoint.breakForce = Mathf.Infinity;
|
||||
fixedJoint.breakTorque = Mathf.Infinity;
|
||||
fixedJoint.enableCollision = false;
|
||||
fixedJoint.enablePreprocessing = true;
|
||||
|
||||
colliders[i].SetActive( true );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
void OnDisable()
|
||||
{
|
||||
for ( int i = 0; i < colliders.Length; ++i )
|
||||
{
|
||||
if ( colliders[i] != null )
|
||||
{
|
||||
Destroy( colliders[i].GetComponent<FixedJoint>() );
|
||||
|
||||
colliders[i].SetActive( false );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
void OnDestroy()
|
||||
{
|
||||
for ( int i = 0; i < colliders.Length; ++i )
|
||||
{
|
||||
Destroy( colliders[i] );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user