void Sense() { Vector3 origin = transform.position; origin += transform.forward * 0.1f; RaycastHit hitInfo; if (Physics.Raycast(origin, transform.forward * -1f, out hitInfo, maxRange)) { lastObjectSensed = hitInfo.collider.gameObject.tag; lastDistSensed = hitInfo.distance; BarrierPiece b = hitInfo.collider.gameObject.GetComponent <BarrierPiece>(); if (b != null) { if (!b.hasBeenHit && onDetectCB != null) { onDetectCB.Invoke(); } b.OnSensorDetected(); } sensorIndicator.position = hitInfo.point; } else { sensorIndicator.localPosition = sensorIndicatorStart; lastObjectSensed = "none"; lastDistSensed = maxRange; } }
public Barrier(Coordinate coordinate, BarrierOrientation orientation, BarrierPiece piece) { Coordinate = coordinate; Orientation = orientation; Piece = piece; }