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; } } }
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()); }