Beispiel #1
0
    // Update is called once per frame
    void FixedUpdate()
    {
        if (intervalElapsed < 0)
        {
            var mesh = this.GetComponent <MeshRenderer>();

            var mats = mesh.materials;
            mats[MaterialIndex] = GlobalAccess.GetReferences().AdLights.PickOne();
            mesh.materials      = mats;

            ResetInterval();
        }

        intervalElapsed -= Time.fixedDeltaTime;
    }
    void Fork()
    {
        var existingForks = new List <Vector3>();

        while (forkCount > 0)
        {
            var pos = sgm.GetPointInSegment();
            if (!existingForks.Any() || existingForks.Any(x => Vector3.Distance(pos, x) < MinDistance))
            {
                var fork = Instantiate(GlobalAccess.GetReferences().SmallSegmentPf, this.transform)
                           .GetComponent <Segment>();
                var length = Random.Range(sgm.Length / 1.5f, sgm.Length);
                existingForks.Add(pos);
                if (MathHelper.DiceRoll(IntersectionChance))
                {
                    if (MathHelper.DiceRoll(50))
                    {
                        pos.x = length / 2;
                    }
                    else
                    {
                        pos.x = -length / 2;
                    }
                }


                fork.Length = length;
                fork.transform.localPosition    = pos;
                fork.transform.localEulerAngles = new Vector3(0, 90, 0);
                GlobalAccess.GetCity().Segments.Add(fork);
                fork.transform.SetParent(GlobalAccess.GetCity().transform);
            }

            forkCount--;
        }
    }
Beispiel #3
0
 void Start()
 {
     refs = GlobalAccess.GetReferences();
     city = GlobalAccess.GetCity();
     sgm  = this.GetComponent <Segment>();
 }