Как переместить gameObject в случайный объект с указанным тегом c - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь выяснить, как заставить объект перемещаться в положение другого объекта, который имеет заданный тег c. В настоящее время у меня есть массив объектов, который содержит все «выборы» объекта. Затем я получаю случайное число от 0 до количества найденных объектов. Я проверил эту часть, и она, кажется, работает хорошо.

То, на чем я застрял, это перемещение объекта, на котором находится сценарий, в положение объекта, который находит сценарий. Я думаю, что мне нужно сделать, чтобы получить объект, связанный с номером индекса и его положением, но это не работает. Заранее спасибо! Извините, если этот вопрос не структурирован правильно, это мой первый пост!

public class objective : MonoBehaviour
{
    GameObject moveTo;
    public GameObject[] gameObjectChoices;
    public float choiceNumber;

    void Start()
    {
        //get objects with tag and apply it to object array
        gameObjectChoices = GameObject.FindGameObjectsWithTag("RandomCheesePoint");
        //choose one of the gameObjects in array
        choiceNumber = Random.Range(0, gameObjectChoices.Length);

        Debug.Log(choiceNumber);

        //move object to random object found
        transform.position = gameObjectChoices[choiceNumber].gameObject.transform.position;

        //problem occurs at gameObjectChoices[choiceNumber]
        //error message says "Cannot implicitly convert type 'float' to 'int' An explicit conversion exists (are you missing a cast?)"        
    }
}

1 Ответ

2 голосов
/ 17 апреля 2020

Ваша проблема в том, что вы пытаетесь проиндексировать массив, используя значение float вместо int.

Random.Range() вернет тот же тип, что и его входные параметры (в вашем случае int) но это значение становится неявным образом приведенным к float, потому что вы объявили свою переменную как:

public float choiceNumber;

Если вы измените это на:

public int choiceNumber;

Тогда ваш код должен работать идеально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...