コード例 #1
0
    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);
        }
    }
コード例 #2
0
    private Vector3 GetStairsPosition(float t, float offset = 0f)
    {
        Vector3 localPosition = _helix.GetPosition(t, offset);

        return(transform.TransformPoint(localPosition));
    }