private void OnTriggerEnter2D(Collider2D collision) { // 吃掉食物,并且重新生成食物,而且还有20%的几率生成奖励 Reward if (collision.gameObject.CompareTag("Food")) { Destroy(collision.gameObject); mainUIController.UpdateScoreAndLength(); // 20% 的几率生成 Reward foodMaker.MakeFoods((Random.Range(0, 100) < 20 ? true : false)); // 吃掉食物生成蛇身 SnakeBodySpawn(); } else if (collision.gameObject.CompareTag("Reward")) { Destroy(collision.gameObject); mainUIController.UpdateScoreAndLength(Random.Range(20, 200)); // 吃掉食物生成蛇身 SnakeBodySpawn(); } else if (collision.gameObject.CompareTag("SnakeBody")) { Die(); } else { // 有边界撞墙直接死亡 if (mainUIController.isBorder == true) { Die(); } else { switch (collision.gameObject.name) { case "Up": transform.localPosition = new Vector3(transform.localPosition.x, -transform.localPosition.y + 30, transform.localPosition.z); break; case "Down": transform.localPosition = new Vector3(transform.localPosition.x, -transform.localPosition.y - 30, transform.localPosition.z); break; case "Left": transform.localPosition = new Vector3(-transform.localPosition.x + 120, transform.localPosition.y, transform.localPosition.z); break; case "Right": transform.localPosition = new Vector3(-transform.localPosition.x + 180, transform.localPosition.y, transform.localPosition.z); break; } } } }