Example #1
0
 void Snake_OnAppleEaten(PositionOnField applePosition)
 {
     for (int i = 0; i < apples.Count; i++)
     {
         if (apples[i].PositionOnField.X == applePosition.X &&
             apples[i].PositionOnField.Y == applePosition.Y &&
             apples[i].PositionOnField.Z == applePosition.Z)
         {
             Destroy(apples[i].gameObject);
             apples.Remove(apples[i]);
             return;
         }
     }
 }
Example #2
0
        public void Init(LevelObject[,,] field, List <LevelObject> apples, GameConfig config, PositionOnField startPosition)
        {
            this.config = config;
            this.field  = field;
            this.apples = apples;

            for (int i = 0; i < config.StartSegmentsCount; i++)
            {
                Segment newSegment = Instantiate(segmentPrefab, new Vector3(startPosition.X, i, startPosition.Z) * config.Step, Quaternion.identity, transform);
                newSegment.transform.localScale = Vector3.one * config.Step;
                segments.Add(newSegment);

                field[0, i, 0]             = newSegment;
                newSegment.PositionOnField = new PositionOnField(startPosition.X, i, startPosition.Z);

                headSegment = newSegment;
            }

            SetRandomDirectionCoroutine = StartCoroutine(SetRandomDirection());
            StartCoroutine(Move());
        }