VR模拟枪支打靶,消灭鬼怪,换弹以及上弦等等硬核枪支操作。 使用HTCVive设备,开启SteamVR进行游玩。
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.

46 lines
1.4 KiB

3 years ago
using HTC.UnityPlugin.Utility;
using System.Collections.Generic;
using UnityEngine;
public class PlayGroundManager : MonoBehaviour
{
private static List<Draggable> draggablesCache = new List<Draggable>();
private Dictionary<int, RigidPose> poseTable = new Dictionary<int, RigidPose>();
private void Awake()
{
draggablesCache.Clear();
GetComponentsInChildren(draggablesCache);
for (int i = 0, imax = draggablesCache.Count; i < imax; ++i)
{
var dt = draggablesCache[i].transform;
poseTable[dt.GetInstanceID()] = new RigidPose(dt);
}
draggablesCache.Clear();
}
public void ResetPositions()
{
draggablesCache.Clear();
GetComponentsInChildren(draggablesCache);
for (int i = 0, imax = draggablesCache.Count; i < imax; ++i)
{
var dt = draggablesCache[i].transform;
RigidPose pose;
if (poseTable.TryGetValue(dt.GetInstanceID(), out pose))
{
dt.position = pose.pos;
dt.rotation = pose.rot;
var rb = dt.GetComponent<Rigidbody>();
if (rb != null)
{
rb.velocity = Vector3.zero;
rb.angularVelocity = Vector3.zero;
}
}
}
draggablesCache.Clear();
}
}