protected virtual void OnEnteredSegment(LevelSegment entered) { if (isPlayerInstance) { entered.Enter(); } }
private void DoUpdate() { if (LevelGenerator.instance == null || !LevelGenerator.instance.ready) { _result.position = trs.position; _result.up = trs.up; _result.forward = trs.forward; _result.percent = 0.0; return; } if (Time.unscaledTime - lastUpdateTime < updateTime) { return; } LevelGenerator.instance.Project(trs.position, _result, useAccurateMode); int index = 0; LevelGenerator.instance.GlobalToLocalPercent(_result.percent, out index); _segmentIndex = index; _levelSegment = LevelGenerator.instance.segments[_segmentIndex]; if (onProject != null) { onProject(); } if (_levelSegment != lastSegment) { _levelSegment.Enter(); lastSegment = _levelSegment; } lastUpdateTime = Time.unscaledTime; }
private void Init(LevelSegment input, double percentAlong = 0.0) { _segment = input; Evaluate(percentAlong, _result); if (isPlayerInstance) { _segment.Enter(); } OnEnteredSegment(_segment); RefreshTargets(); }