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.
36 lines
962 B
36 lines
962 B
3 years ago
|
//========= Copyright 2016-2018, HTC Corporation. All rights reserved. ===========
|
||
|
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace HTC.UnityPlugin.Pointer3D
|
||
|
{
|
||
|
public class ProjectionGenerator : BaseRaySegmentGenerator
|
||
|
{
|
||
|
public float velocity = 2f;
|
||
|
public Vector3 gravity = Vector3.down;
|
||
|
|
||
|
private bool isFirstSegment = true;
|
||
|
|
||
|
public override void ResetSegments()
|
||
|
{
|
||
|
isFirstSegment = true;
|
||
|
}
|
||
|
|
||
|
public override bool NextSegment(out Vector3 direction, out float distance)
|
||
|
{
|
||
|
if (isFirstSegment && velocity > Pointer3DRaycaster.MIN_SEGMENT_DISTANCE)
|
||
|
{
|
||
|
isFirstSegment = false;
|
||
|
direction = raycaster.transform.forward;
|
||
|
distance = velocity;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
direction = gravity;
|
||
|
distance = float.PositiveInfinity;
|
||
|
}
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
}
|