示例#1
0
    /*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);
    }
示例#2
0
    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);
    }