49 lines
1.1 KiB
C#
49 lines
1.1 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine.Events;
|
|
|
|
public class simpleLaserObjectDetectorSystem : laser
|
|
{
|
|
[Space]
|
|
[Header ("Main Settings")]
|
|
[Space]
|
|
|
|
public LayerMask obstacleLayermask;
|
|
|
|
public Transform laserTransform;
|
|
|
|
RaycastHit hit;
|
|
Ray ray;
|
|
int nPoints;
|
|
|
|
void Start ()
|
|
{
|
|
StartCoroutine (laserAnimation ());
|
|
}
|
|
|
|
void Update ()
|
|
{
|
|
animateLaser ();
|
|
|
|
if (Physics.Raycast (laserTransform.position, laserTransform.forward, out hit, Mathf.Infinity, obstacleLayermask)) {
|
|
//set the direction of the laser in the hit point direction
|
|
transform.LookAt (hit.point);
|
|
|
|
//get the hit position to set the particles of smoke and sparks
|
|
laserDistance = hit.distance;
|
|
|
|
lRenderer.positionCount = 2;
|
|
lRenderer.SetPosition (0, transform.position);
|
|
lRenderer.SetPosition (1, hit.point);
|
|
//set the laser size
|
|
} else {
|
|
|
|
laserDistance = 1000;
|
|
|
|
lRenderer.positionCount = 2;
|
|
lRenderer.SetPosition (0, transform.position);
|
|
lRenderer.SetPosition (1, (laserDistance * transform.forward));
|
|
}
|
|
}
|
|
} |