Переменные случайным образом меняются после установки один раз - PullRequest
1 голос
/ 23 марта 2019

Я пытаюсь порождать GameObject каждый раз, когда его удаляют в случайно сгенерированных местах на моей карте.

У меня есть следующий код для порождения моей еды

using UnityEngine;

public class SpawnManager : MonoBehaviour
{

    public GameObject food;

    private Vector3 maxSpawnLimit;
    private Vector3 minSpawnLimit;

    private Vector3 spawnLocation;
    private Quaternion spawnRotation;

    private GameObject ground;

    private void Start()
    {
        ground = GameObject.Find("Ground");

        maxSpawnLimit = ground.transform.lossyScale / 2 + new Vector3(-1, 1, -1);
        minSpawnLimit = -ground.transform.lossyScale / 2 + new Vector3(1, 1, 1);

        Debug.Log("Start Spawn limit " + maxSpawnLimit + minSpawnLimit);
    }

    public void SpawnFood()
    {
        spawnLocation = new Vector3(Random.Range(minSpawnLimit[0], maxSpawnLimit[0]), 0, Random.Range(minSpawnLimit[2], maxSpawnLimit[2])) + new Vector3(0, 5, 0);
        spawnRotation = Quaternion.Euler(0, 0, 0);
        Instantiate(food, spawnLocation, spawnRotation);
        Debug.Log("Spawn Limits " + maxSpawnLimit + minSpawnLimit);
    }
}

Я запускаюDebug.Log для максимального и минимального пределов появления, когда они установлены в методе запуска, и они не меняются, хотя я сделал то же самое в методе SpawnFood, и пределы изменяются с (49, 1, 49), какими они должны быть, до (0, 0, 0)после появления первой порции еды.Почему это так?

РЕДАКТИРОВАТЬ: Инспектор для объекта, к которому прикреплен SpawnManager скрипт https://i.imgur.com/XxbupJj.png

Скрипт, показывающий обнаружение столкновений и последующий вызов метода и удаление объекта

using UnityEngine;

public class Player : MonoBehaviour
{
    private void OnTriggerEnter(Collider other)
    {

        if (other.tag == "Food")
        {
            Destroy(other.gameObject);
            FindObjectOfType<SpawnManager>().SpawnFood();
        }
    }
}```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...