1 using System.Collections;
2 using System.Collections.Generic;
10 namespace AVR.Motion {
18 [RequireComponent(typeof(LineRenderer))]
22 public System.Func<RaycastHit,
bool> filter = (RaycastHit h) =>
true;
25 [Header(
"HitReticules")]
38 Gradient m_ValidColorGradient =
new Gradient()
40 colorKeys =
new GradientColorKey[] {
new GradientColorKey(Color.white, 0.0f),
new GradientColorKey(Color.white, 1.0f) },
41 alphaKeys =
new GradientAlphaKey[] {
new GradientAlphaKey(1f, 0.0f),
new GradientAlphaKey(1f, 1.0f) }
44 public Gradient validColorGradient {
get {
return m_ValidColorGradient; } set { m_ValidColorGradient = value; } }
47 Gradient m_InvalidColorGradient =
new Gradient()
49 colorKeys =
new GradientColorKey[] {
new GradientColorKey(Color.red, 0.0f),
new GradientColorKey(Color.red, 1.0f) },
50 alphaKeys =
new GradientAlphaKey[] {
new GradientAlphaKey(1f, 0.0f),
new GradientAlphaKey(1f, 1.0f) }
53 public Gradient invalidColorGradient {
get {
return m_InvalidColorGradient; } set { m_InvalidColorGradient = value; } }
61 get {
return _valid; }
65 public override void hide() {
67 if(reticule) reticule.SetActive(
false);
68 if(invalid_reticule) invalid_reticule.SetActive(
false);
77 _valid = objectHit && this.filter(hitPosition);
81 reticule.transform.position = hitPosition.point;
82 reticule.transform.forward =
new Vector3(Camera.main.transform.forward.x, 0.0f, Camera.main.transform.forward.z);
83 reticule.SetActive(objectHit && isValid);
86 reticule.SetActive(
false);
90 if(invalid_reticule) {
91 invalid_reticule.transform.position = hitPosition.point;
92 invalid_reticule.transform.forward =
new Vector3(Camera.main.transform.forward.x, 0.0f, Camera.main.transform.forward.z);
93 invalid_reticule.SetActive(objectHit && !isValid);
96 invalid_reticule.SetActive(
false);
101 lr.colorGradient = m_ValidColorGradient;
104 lr.colorGradient = m_InvalidColorGradient;
override void hide()
Hides the ray. A ray is not updated while hidden.
Sets the documentation html file inside of Packages/com.avr.core/Documentation/html of a given class...
GameObject reticule
Reticule object displayed when a valid surface is hit
GameObject invalid_reticule
Reticule object displayed when an invalid surface is hit
A more advanced type of AVR_Ray. The ray can be used to get the first object hit by it...
override void UpdateRay()
Updates the ray. Called from Monobehaviour.Update()
AVR_SolidRay but, when an object is hit, the hit is either valid or invalid. The validity of the hit ...