/*private IEnumerator MoveOut() * { * RoadPlace current; * * if (TryGetCurrentPlatform(out current) && Map.CanReadInput) * { * var spline = current.DeadWay; * transform.position = spline.GetPoint(0).position; * _spline.spline = spline; * } * yield return null; * * * }*/ private bool TryGetCurrentPlatform(out RoadPlace platform) { int layerMask = 1 << 8; layerMask = ~layerMask; RaycastHit hit; if (Physics.Raycast(transform.position + Vector3.up, -transform.up, out hit, Mathf.Infinity, layerMask)) { RoadPlace road; if (hit.collider.gameObject.TryGetComponent <RoadPlace>(out road)) { _distanceToNextPlatform = Vector3.Distance(transform.position, hit.collider.gameObject.transform.position); platform = road; return(true); } } platform = null; return(false); }
public bool IsComplete(RoadPlace road) { if (road.IsMirror) { if ((int)road.TrueRotation == (int)road.transform.eulerAngles.y || (int)road.TrueRotation == (int)(road.transform.eulerAngles.y - 180) || (int)road.TrueRotation == (int)(road.transform.eulerAngles.y + 180)) { return(true); } } else { if ((int)road.TrueRotation == (int)road.transform.eulerAngles.y) { return(true); } } return(false); }