Пятница, 10 Мая 2024, 08:59

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос-[ответ] по Unity (Задаём свои вопросы)
Вопрос-[ответ] по Unity
QWER56Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1
старожил
Сейчас нет на сайте
Вопрос-[Ответ] по Unity3d

  • База скриптов Unity3d
  • Курс Уроков по Unity 3D от Alcatraz

    ConsMark - поисковик по интернет магазинам.

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • Garry599Дата: Среда, 14 Марта 2018, 14:45 | Сообщение # 8481
    был не раз
    Сейчас нет на сайте
    Цитата seaman ()
    1. Resources это подпапка Assets?
    2. Как грузите их?
    3. С чего взяли, что в сборке их нет?


    1. Да именно.
    2.
    Код
    root = XDocument.Parse (File.ReadAllText (Application.dataPath + "/Resources/level1.xml")).Element ("root");

    3. Когда под windows проект собираю их там нет. Но если ручками вставить в собранный проект в папку ресурсов, то всё работает. С windows-сборкой все и так просто, с Андройд все гораздо сложнее, в apk файл так просто не запихнёшь ресурсы.
    drcrackДата: Среда, 14 Марта 2018, 16:07 | Сообщение # 8482
    старожил
    Сейчас нет на сайте
    Ресурсы грузяца через Resource.Load, напрямую читать их файлы нельзя, потому что оригинальных файлов в билде нет, они хранятся упакованными.
    Попробуй Streaming Assets вместо ресурсов
    https://docs.unity3d.com/Manual/StreamingAssets.html


    Сообщение отредактировал drcrack - Среда, 14 Марта 2018, 16:09
    Garry599Дата: Среда, 14 Марта 2018, 16:30 | Сообщение # 8483
    был не раз
    Сейчас нет на сайте
    Спасибо, drcrack! Очень помогло!
    BassPiraT92Дата: Понедельник, 19 Марта 2018, 13:16 | Сообщение # 8484
    участник
    Сейчас нет на сайте
    Ребят скажите, а переменные на русском языке можно писать?
    Garry599Дата: Четверг, 29 Марта 2018, 11:10 | Сообщение # 8485
    был не раз
    Сейчас нет на сайте
    Нет, только содержимое переменных типа string.

    Добавлено (29 Марта 2018, 11:10)
    ---------------------------------------------
    Есть проблема с доступом к объекту.
    В одном скрипте и одном классе используется объект в функции Start() и в OnGUI(). Но в OnGUI() не работает.
    Пишет лог: NullReferenceException: Object reference not set to an instance of an object.
    Почему он в старте может получить ссылку а в апдейте нет?
    P/S
    Код
    using System.Collections;
    using UnityEngine;

    public class InstantiateDialog : MonoBehaviour {

        public TextAsset ta;
        public Dialog dialog;
        public int _currentnode;

        void Start ()
        {
      Dialog dialog = Dialog.Load (ta);
      foreach (Node nd in dialog.nodes)
      {
       Debug.Log (nd.NpcText);
      }
      Debug.Log (dialog.nodes [_currentnode].NpcText); // Это пытаюсь вызвать тут норм.
        }
        

        void Update () {
      
        }

        void OnGUI()
        {
      GUI.Box (new Rect (Screen.width / 2 - 300, Screen.height - 300, 600, 250), "");
      Debug.Log (dialog.nodes [_currentnode].NpcText); //// Это пытаюсь вызвать. Тут не работает.
        }
    }


    Сообщение отредактировал Garry599 - Четверг, 29 Марта 2018, 11:59
    masyaaДата: Четверг, 29 Марта 2018, 13:37 | Сообщение # 8486
    был не раз
    Сейчас нет на сайте
    Глупый вопрос, но подскажите, пожалуйста. Могу ли я внутри функции OnMouseOver() вызывать свои функции? И, если да, как это сделать правильно? Я пишу как в коде под спойлером, но это не работает.


    Разобрался, была ошибка в логике внутри скрипта


    Сообщение отредактировал masyaa - Четверг, 29 Марта 2018, 13:51
    Garry599Дата: Четверг, 29 Марта 2018, 17:35 | Сообщение # 8487
    был не раз
    Сейчас нет на сайте
    Цитата Garry599 ()
    Есть проблема с доступом к объекту.


    Проблему решил. Случайно вписал лишнее ключевое слово Dialog перед названием переменной в функции Start, тем самым создав новую локальную переменную для функции старт а не назначил значение глобальной для класса.
    masyaaДата: Суббота, 31 Марта 2018, 00:07 | Сообщение # 8488
    был не раз
    Сейчас нет на сайте
    Здравствуйте!
    В общем, снова проблема :(
    Как накнопку ESC добавлять несколько действий?
    Например в скрипте Pause я ставлю паузу на кнопку ESC , а в скрипте чтения записок я на кнопку ESC "выключаю" записку. Но на деле не работало.

    Подскажите как надо делать, пожалуйста.

    Пробовал через логические переменные, но не работало. Одновременно выключал док и ставил паузу. А надо, чтобы по первому нажатию закрывал док, а по второму - паузу

    Заранее спасибо. Извините за глупые вопросы , только учусь :( никакой инфы в документации и инете не нашел, но, возможно, плохо искал


    Сообщение отредактировал masyaa - Суббота, 31 Марта 2018, 00:08
    CleverRusДата: Суббота, 31 Марта 2018, 09:28 | Сообщение # 8489
    почетный гость
    Сейчас нет на сайте
    masyaa, надо делать проверку в скрипте паузы открыт ли документ, если открыт выполняй метод закрытия документа "в скрипте чтения записок", если не открыт - ставь паузу.
    STRATEG766Дата: Среда, 04 Апреля 2018, 17:17 | Сообщение # 8490
    частый гость
    Сейчас нет на сайте
    Я использую вот этот код для поворота башни танка.
    Код
    turret.rotation = Quaternion.Slerp(turret.rotation, turret.transform.rotation=new Quaternion(0,0,90,0), 5 * Time.deltaTime);
    Скажите, почему у меня башня поворачивается вверх ногами? Кроме "z" стоит все по нулям, но почему-то меняется и "y".


    Сообщение отредактировал STRATEG766 - Среда, 04 Апреля 2018, 18:13
    brenmaster123Дата: Четверг, 05 Апреля 2018, 18:15 | Сообщение # 8491
    уже был
    Сейчас нет на сайте
    У меня ошибка при компиляции игры на платформу андроид.
    Вначале пишет:
    CommandInvokationFailure: Gradle build failed.
    C:/Program Files/Java/jdk-10\bin\java.exe -classpath "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.0.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx2048m" "assembleRelease"

    stderr[

    FAILURE: Build failed with an exception.

    * What went wrong:
    Could not determine java version from '10'.

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    ]
    stdout[

    ]
    exit code: 1
    UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
    UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
    UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System.Action`1 progress, System.String error)
    UnityEditor.Android.GradleWrapper.Run (System.String workingdir, System.String task, System.Action`1 progress)
    Rethrow as GradleInvokationException: Gradle build failed
    UnityEditor.Android.GradleWrapper.Run (System.String workingdir, System.String task, System.Action`1 progress)
    UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
    UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

    затем
    Error building Player: 2 errors

    и две ошибки:
    Build completed with a result of 'Failed'
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

    и эта
    UnityEditor.BuildPlayerWindow+BuildMethodException: 3 errors
    at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x0020e] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:181
    at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00065] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:88
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

    итого: 4 ошибки

    В игровой индустрии ещё тот новичок( с программированием всё ещё туго, как и с юнити в общем).
    Помогите, если не сложно)
    vampir0305Дата: Суббота, 07 Апреля 2018, 20:16 | Сообщение # 8492
    Unity C# Programmer
    Сейчас нет на сайте
    Можно ли как то делать проверки вне функций. Например:
    Код

    public class NewScript : MonoBehaviour {

    public bool isStart = false;

    if (isStart)
    {
    public GameObject obj;
    }

    }


    В общем надо как-то проверить, если в редакторе на объекте на котором висит скрипт допустим стоит галочка, то получается что isStart = true и тогда public GameObject obj; активен и можно перетаскивать объект. А если в редакторе галочка не стоит, значит public GameObject obj; неактивен и перетаскивать объект нельзя.


    Красочная сюжетно-ориентированная игра-головоломка

    Сообщение отредактировал vampir0305 - Суббота, 07 Апреля 2018, 20:17
    seamanДата: Суббота, 07 Апреля 2018, 20:17 | Сообщение # 8493
    старожил
    Сейчас нет на сайте
    OnValidate
    vampir0305Дата: Суббота, 07 Апреля 2018, 20:19 | Сообщение # 8494
    Unity C# Programmer
    Сейчас нет на сайте
    seaman, Спасибо

    Красочная сюжетно-ориентированная игра-головоломка
    STRATEG766Дата: Воскресенье, 08 Апреля 2018, 00:00 | Сообщение # 8495
    частый гость
    Сейчас нет на сайте
    Сделал вот такую стрельбу.
    Цитата
    Tank2DShell shell = Instantiate(tankShell, tankShellPoint.position, Quaternion.AngleAxis(angle, Vector3.right)) as Tank2DShell;
    shell.SetDirection(tankShellPoint.up);

    Из-за того что использовал "up" пули летят не в том направлении, то есть обратно. Использовал forward вместо up , но пули летят ооччень медленно. Есть ли чтонить аналогично up кроме forwarda? Или как правильно использовать forward?
    drcrackДата: Воскресенье, 08 Апреля 2018, 08:14 | Сообщение # 8496
    старожил
    Сейчас нет на сайте
    Этот кусок вообще никак не влияет на скорость пуль, покажи Tank2DShell.cs
    STRATEG766Дата: Воскресенье, 08 Апреля 2018, 12:18 | Сообщение # 8497
    частый гость
    Сейчас нет на сайте
    Цитата drcrack ()
    Этот кусок вообще никак не влияет на скорость пуль, покажи Tank2DShell.cs

    Да-да, скорость задана в shell .
    А можно как-то сделать --up или ++up в этом кусочке кода?
    Цитата
    shell.SetDirection(tankShellPoint.up);

    Код
    public class Tank2DShell : MonoBehaviour {

        [SerializeField] private float speed;
        [SerializeField] private float damage;
        [SerializeField] private string[] tagList;
        [SerializeField] private LayerMask layers;

        public void SetDirection(Vector3 direction)
        {
      Rigidbody body = GetComponent<Rigidbody>();

      body.velocity = direction.normalized * speed;
        }
    }


    Сообщение отредактировал STRATEG766 - Воскресенье, 08 Апреля 2018, 12:32
    drcrackДата: Воскресенье, 08 Апреля 2018, 12:44 | Сообщение # 8498
    старожил
    Сейчас нет на сайте
    Цитата
    А можно как-то сделать --up или ++up в этом кусочке кода?

    Легко
    Код
    public void SetDirection(Vector3 direction, float speedMultiplier = 1) {
      Rigidbody body = GetComponent<Rigidbody>();
      body.velocity = direction.normalized * speed * speedMultiplier;
    }
    // ...
    shell.SetDirection(tankShellPoint.forward, 5);


    PS убирать нормализацию и разрешать умножать direction я бы не стал, это несемантично да и неудобно


    Сообщение отредактировал drcrack - Воскресенье, 08 Апреля 2018, 12:45
    STRATEG766Дата: Воскресенье, 08 Апреля 2018, 21:09 | Сообщение # 8499
    частый гость
    Сейчас нет на сайте
    Цитата drcrack ()
    shell.SetDirection(tankShellPoint.forward, 5);
    О, щас как мне надо. Спасибо!


    Сообщение отредактировал STRATEG766 - Воскресенье, 08 Апреля 2018, 21:24
    BassPiraT92Дата: Пятница, 20 Апреля 2018, 11:09 | Сообщение # 8500
    участник
    Сейчас нет на сайте
    Подскажите знающие. Как организовать отсчет времени посекундно? Например есть здание, нажимаю на него и пошел отчет времени после которого здание исчезает. Предположим 10 сек интервал.
    Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос-[ответ] по Unity (Задаём свои вопросы)
    Поиск:

    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг