41 lines
1.2 KiB
C#
41 lines
1.2 KiB
C#
using Cysharp.Threading.Tasks;
|
|
using GhostSystem;
|
|
using NUnit.Framework;
|
|
using UnityEngine;
|
|
|
|
public class EyeTrackingCollisionPoints : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
private float rayDistance = 1.0f;
|
|
|
|
[SerializeField]
|
|
private LayerMask layersToInclude;
|
|
|
|
public GameObject hitPointPrefab;
|
|
|
|
public GameObject hitPoint;
|
|
|
|
private void FixedUpdate()
|
|
{
|
|
RaycastHit hit;
|
|
|
|
Vector3 rayCastDirection = transform.TransformDirection(Vector3.forward) * rayDistance;
|
|
|
|
if ( hitPoint != null && Physics.Raycast(transform.position, rayCastDirection, out hit, rayDistance, layersToInclude))
|
|
{
|
|
hitPoint.transform.position = new Vector3(hit.point.x, hit.point.y, hit.point.z);
|
|
if (hit.collider.GetType() == typeof(MeshCollider))
|
|
{
|
|
hit.collider.gameObject.GetComponent<QuadScript>().addHitPoint(hit.textureCoord.x, hit.textureCoord.y);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
public Transform SpawnHitPoint() // Wird durch LocalPlayerReferences aufgerufen, um nicht zu oft den GhostRecorder zu suchen.
|
|
{
|
|
hitPoint = Instantiate(hitPointPrefab);
|
|
return hitPoint.transform;
|
|
}
|
|
}
|