2021년 4학년 1학기 기업연계프로젝트2
컴퓨터소프트웨어공학과 <원광투어팀>
팀장 : 송유진
팀원 : 김나영, 이경희, 한유진
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//======= Copyright (c) Valve Corporation, All rights reserved. ===============
using UnityEngine;using System.Collections;
namespace Valve.VR.Extras{ [RequireComponent(typeof(SteamVR_TrackedObject))] public class SteamVR_TestThrow : MonoBehaviour { public GameObject prefab; public Rigidbody attachPoint;
public SteamVR_Action_Boolean spawn = SteamVR_Input.GetAction<SteamVR_Action_Boolean>("InteractUI");
SteamVR_Behaviour_Pose trackedObj; FixedJoint joint;
private void Awake() { trackedObj = GetComponent<SteamVR_Behaviour_Pose>(); }
private void FixedUpdate() { if (joint == null && spawn.GetStateDown(trackedObj.inputSource)) { GameObject go = GameObject.Instantiate(prefab); go.transform.position = attachPoint.transform.position;
joint = go.AddComponent<FixedJoint>(); joint.connectedBody = attachPoint; } else if (joint != null && spawn.GetStateUp(trackedObj.inputSource)) { GameObject go = joint.gameObject; Rigidbody rigidbody = go.GetComponent<Rigidbody>(); Object.DestroyImmediate(joint); joint = null; Object.Destroy(go, 15.0f);
// We should probably apply the offset between trackedObj.transform.position
// and device.transform.pos to insert into the physics sim at the correct
// location, however, we would then want to predict ahead the visual representation
// by the same amount we are predicting our render poses.
Transform origin = trackedObj.origin ? trackedObj.origin : trackedObj.transform.parent; if (origin != null) { rigidbody.velocity = origin.TransformVector(trackedObj.GetVelocity()); rigidbody.angularVelocity = origin.TransformVector(trackedObj.GetAngularVelocity()); } else { rigidbody.velocity = trackedObj.GetVelocity(); rigidbody.angularVelocity = trackedObj.GetAngularVelocity(); }
rigidbody.maxAngularVelocity = rigidbody.angularVelocity.magnitude; } } }}
|