Пример #1
0
    void Start()
    {
        this.m_flowers = new List <Plant>(64);
        for (int i = 0; i < subdivCount; i++)
        {
            float    ring_t     = (float)i / subdivCount;
            Material flowerMat  = flowerMats[i % flowerMats.Count];
            bool     evenRow    = ((i & 0x1) == 0);
            int      perRow     = evenRow ? 5 : 4;
            float    delta      = 2f / 5;
            float    baseOffset = -1f + (evenRow ? (0.5f * delta) : delta);
            for (int f = 0; f < perRow; f++)
            {
                float lat_t = baseOffset + (f * delta);
                worldParams.CalcOrientation(ring_t, lat_t, true, out var position, out var rotation);

                var        inst      = Plant.Instantiate(pfFlower, position, rotation, transform);
                Quaternion extraSpin = Quaternion.AngleAxis(180f, inst.transform.up);
                rotation = extraSpin * rotation;
                inst.transform.rotation       = rotation;
                inst.transform.localScale     = Vector3.zero;
                inst.kRenderer.sharedMaterial = flowerMat;
                m_flowers.Add(inst);
            }
        }
    }
Пример #2
0
 void Start()
 {
     // Position this correctly
     worldParams.CalcOrientation(ringPosition, lateralPosition, true,
                                 out var worldPos, out var worldRot
                                 );
     transform.SetPositionAndRotation(worldPos, worldRot);
     m_scaleSlider        = 0f;
     transform.localScale = Vector3.zero;
 }