public void GenerateStairs() { Init(); DeleteStairs(); int stepCount = _cycleCount * _stepCountPerCycle; float step = 1.0f / ((float)(stepCount - 1)); _steps = new Transform[stepCount]; for (int i = 0; i < stepCount; i++) { _steps[i] = Instantiate(_stepTransform, transform); float tHelix = step * (float)i; _steps[i].localPosition = _helix.GetPosition(tHelix); float angle = Mathf.Rad2Deg * _helix.GetAngleRad(tHelix); _steps[i].localRotation = Quaternion.Euler(0.0f, -angle, 0.0f); } }
private Vector3 GetStairsPosition(float t, float offset = 0f) { Vector3 localPosition = _helix.GetPosition(t, offset); return(transform.TransformPoint(localPosition)); }