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.
 
 
 
 
 

95 lines
2.8 KiB

//========= Copyright 2016-2018, HTC Corporation. All rights reserved. ===========
using System;
using UnityEngine;
using UnityEngine.EventSystems;
namespace HTC.UnityPlugin.Pointer3D
{
public abstract class BaseFallbackCamRaycaster : BaseMultiMethodRaycaster
{
[NonSerialized]
private bool isDestroying = false;
[NonSerialized]
private Camera fallbackCam;
[SerializeField]
private float nearDistance = 0f;
[SerializeField]
private float farDistance = 20f;
public float NearDistance
{
get { return nearDistance; }
set
{
nearDistance = Mathf.Max(0f, value);
if (eventCamera != null)
{
eventCamera.nearClipPlane = nearDistance;
}
}
}
public float FarDistance
{
get { return farDistance; }
set
{
farDistance = Mathf.Max(0f, nearDistance, value);
if (eventCamera != null)
{
eventCamera.farClipPlane = farDistance;
}
}
}
public override Camera eventCamera
{
get
{
if (isDestroying)
{
return null;
}
if (fallbackCam == null)
{
var go = new GameObject(name + " FallbackCamera");
go.SetActive(false);
// place fallback camera at root to preserve world position
go.transform.SetParent(EventSystem.current.transform, false);
go.transform.localPosition = Vector3.zero;
go.transform.localRotation = Quaternion.identity;
go.transform.localScale = Vector3.one;
fallbackCam = go.AddComponent<Camera>();
fallbackCam.clearFlags = CameraClearFlags.Nothing;
fallbackCam.cullingMask = 0;
fallbackCam.orthographic = true;
fallbackCam.orthographicSize = 1;
fallbackCam.useOcclusionCulling = false;
#if !(UNITY_5_3 || UNITY_5_2 || UNITY_5_1 || UNITY_5_0)
fallbackCam.stereoTargetEye = StereoTargetEyeMask.None;
#endif
fallbackCam.nearClipPlane = nearDistance;
fallbackCam.farClipPlane = farDistance;
}
return fallbackCam;
}
}
protected override void OnDestroy()
{
base.OnDestroy();
isDestroying = true;
if (fallbackCam != null)
{
Destroy(fallbackCam);
fallbackCam = null;
}
}
}
}