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.

51 lines
1.6 KiB

3 years ago
//========= Copyright 2016-2018, HTC Corporation. All rights reserved. ===========
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
namespace HTC.UnityPlugin.Pointer3D
{
public class PhysicsRaycastMethod : BaseRaycastMethod
{
public enum MaskTypeEnum
{
Inclusive,
Exclusive,
}
private static readonly RaycastHit[] hits = new RaycastHit[64];
public MaskTypeEnum maskType;
public LayerMask mask;
public int RaycastMask { get { return maskType == MaskTypeEnum.Inclusive ? (int)mask : ~mask; } }
#if UNITY_EDITOR
protected virtual void Reset()
{
maskType = MaskTypeEnum.Exclusive;
mask = LayerMask.GetMask("Ignore Raycast");
}
#endif
public override void Raycast(Ray ray, float distance, List<RaycastResult> raycastResults)
{
var hitCount = Physics.RaycastNonAlloc(ray, hits, distance, RaycastMask);
for (int i = 0; i < hitCount; ++i)
{
raycastResults.Add(new RaycastResult
{
gameObject = hits[i].collider.gameObject,
module = raycaster,
distance = hits[i].distance,
worldPosition = hits[i].point,
worldNormal = hits[i].normal,
screenPosition = Pointer3DInputModule.ScreenCenterPoint,
index = raycastResults.Count,
sortingLayer = 0,
sortingOrder = 0
});
}
}
}
}