• Как присвоить родителя в Unity?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Поменять родителя у трансформа можно с помощью вызова Transform.SetParent либо прямой замены Transform.parent. Кроме того, в последних версиях юнити появилась новая версия Instantiate, которая позволяет указать родителя при создании объекта.
    using UnityEngine;
    
    public class NewBehaviourScript : MonoBehaviour
    {
        public Transform prefab;
        public Transform parent;
    
        private void Start()
        {
            // Создаём новый объект из префаба
            var child = Instantiate(prefab);
            // Присваиваем родителя
            child.SetParent(parent);
            // Либо так
            child.parent = parent;
    
            // Либо сразу в одну строчку
            var child = Instantiate(prefab, parent);
        }
    }

    Отвечая на ваш комментарий, проверьте кому вы пытаетесь присвоить родителя, префабу или новому объекту.
    Ответ написан
    2 комментария
  • Как контроллировать fps в Unity3D?

    focus
    @focus
    Если вопрос был про отображение FPS в игре, то в редакторе есть специальная панелька Stats, с полезной информацией, включая FPS, количество DC за кадр и т.д.
    Но если надо посмотреть FPS в уже скомпилированной игре, на целевом устройстве, то я бы посоветовал свой плагин для этих целей: Advanced FPS Counter. Подробнее о плагине можно почитать тут: codestage.net/uas/afps
    Ответ написан
    Комментировать
  • Когда нужно использовать var?

    @Wundarshular
    В вашем случае, как указали выше, происходит ошибка приведения типов, так как тип int действительно не равен типу Random.
    Если вы хотели сохранить в переменной rnd псевдослучайное число, то вам нужно предварительно создать и инициализировать экземпляр класса Random, а затем уже присвоить возвращаемое значение его метода Next() переменной:
    Random rnd = new Random();
    int rndNum = rnd.Next();

    Переменные, объявленные через "var" являются неявно типизированными, и их тип определит компилятор, то есть, в вашем случае
    var rnd = new Random();
    станет экземпляром класса Random на этапе компиляции. В очень простом пояснении: используйте var, когда заведомо не знаете, какого типа будет ваша переменная. Но имейте ввиду, что это может быть черевато.

    https://docs.microsoft.com/ru-ru/dotnet/csharp/lan...
    Ответ написан
    1 комментарий