Вопросы с тегами [unity3d]

0

голосов
0

ответ
2

Просмотры

VR Проблема: Спрайты мерцают на единстве и при ношении VR

Что до ребят, я разработка виртуальной реальности опыта в местный музей, где люди в ВР должны были бы пройти через коридор, и каждая дверь имеет простой 2D анимации (б костей дракона, чтобы оживить его). Проблема заключается в том: все иллюстрации, которые мультипликационных много мелких деталей и тонких линий. При использовании VR (или перемещении камеры на Unity) эти образы, кажется, «мерцание», теряя много его разрешения. Эта проблема происходит в обоих направлениях (Oculus Go и программное обеспечение Unity), но при ношении VR его гораздо более заметным, если учесть, что ее предоставление мощности ниже, чем высокой производительности оборудования. Я искал в много форумах VR / Unity и все информации, которую я нашел, были устаревшими (сообщения с 2014 года) и не VR сосредоточенным. Каждый имеет любой совет или любое предположение о том, как может быть в состоянии это исправить?
pedrlops
-2

голосов
2

ответ
21

Просмотры

Как импортировать номер из сцены 1 к сцене 2?

Как я могу импортировать номер из другой сцены? Например: СЦЕНЫ1 сценарий, если (...) {а = 1; } Еще {а = 0; } Как импортировать к следующей сцене?
1

голосов
1

ответ
82

Просмотры

Android-визуализатор FFT данные зависят от объема

Я пишу плагин для приложения Unity, который использует класс Android-визуализатор. Я использую функцию getFft () и код при условии, чтобы получить FFT величины. Возвращаемые значения зависят от объема - гораздо более высокие значения с более высоким объемом, и намного более низкие значения с меньшим объемом. Вот мой конструктор, где я инициализировать Visualizer: частная PluginClass () {ошибка = новый INT [2]; INT размер = Visualizer.getCaptureSizeRange () [1]; // Эквалайзер Эквалайзер mEqualizer = новый Эквалайзер (0, 0); // Visualizer this.visualizer = новый визуализатор (0); this.visualizer.setEnabled (ложь); mEqualizer.setEnabled (истина); this.visualizer.setCaptureSize (размер); если (android.os.Build.VERSION.SDK_INT> = Build.VERSION_CODES.KITKAT) {this.visualizer.setScalingMode (SCALING_MODE_NORMALIZED); этот. visualizer.setMeasurementMode (MEASUREMENT_MODE_PEAK_RMS); } This.visualizer.setEnabled (истина); this.waveFormData = новый байт [размер]; this.fftData = новый байт [размер]; } Я устанавливаю эквалайзер (я назвал setEnabled до Visualizer был создан, после того, как он был создан, но прежде, чем он был отключен, после того, как он был отключен, довольно много всего). Режим масштабирования устанавливается нормализоваться, и когда я называю getScalingMode () Я могу подтвердить, что это действительно установлен SCALING_MODE_NORMALIZED. Кто-нибудь есть какие-либо идеи, почему это? В другой дубликат этого вопроса, без объяснения, один ответ говорит, чтобы использовать setVolumeControlStream (AudioManager.STREAM_MUSIC) ;. Я попытался это без толку, но я не понимаю, почему она будет работать в любом случае. ППО покинули свои вопросы, которые попросили об этом раньше, нерешенность вопросов по отвечающими Спрашивается, а не код, предоставленный, так что я должен был открыть этот. Таким образом, я могу также добавить щедроты к этому вопросу. Я бег приложения в режиме VR в случае, если это какая-то непонятная ошибка с VR и Android Java и Unity не играют хорошо вместе. Спасибо!
Big Money
1

голосов
1

ответ
100

Просмотры

Визуализируйте Texture3D с непрозрачностью

Я хочу, чтобы визуализировать Texture3D с видеть хотя разделы непрозрачности. Мои данные Texture работает и может визуализировать с помощью этого шейдера https://github.com/nakamura001/Unity-3DVolumeTexture/blob/master/Assets/Sample3DTexture.shader Но хотел бы использовать уровни непрозрачности. Любая помощь будет высоко оценен. Обновление 1-1-2018 Этот проект сближается https://github.com/gillesferrand/Unity-RayTracing
bartburkhardt
1

голосов
0

ответ
78

Просмотры

Вызов функции C с указателем в Unity3d с C #

Я хочу, чтобы использовать плагин C в Unity3d. Вот функция C, которую я хочу использовать. DECODE_EXPORT CMDecoderFrame * DECODE_CALL CMAllocFrame (CMDecoderCtx * CTX); CMDecoderOptions является структурой следующим образом. структура CMDecoderFrame {INT nVertex; // количество вершин Int nVertexBufferSize; INT nUvBufferSize; плавать * pVertexBuffer; // указатель на вершину поплавка данных * pUvBuffer; // указатель на данные уф INT nIndex; // число индексов Int nIndexBufferSize; int32_t * pIndexBuffer; // указатель на данные индекса INT плавающего фрейм; INT iSegment; CMDecoderTexture текстуры; }; Я не знаком о C #, так что я не знаю, как бороться с этим указателем как возвращаемое значение функции и указатель на структуры. Стараюсь решение в C #, но это не очень хорошо работает. структура CMDecoderFrame {общественности INT nVertex; // количество вершин общественного ИНТ nVertexBufferSize; общественный ИНТ nUvBufferSize; общественный поплавок [] pVertexBuffer; // указатель на данные вершин общественного поплавка [] pUvBuffer; // указатель на уф публичные данные INT nIndex; // число индексов общественного ИНТ nIndexBufferSize; общественный ИНТ [] pIndexBuffer; // указатель на данные индекса общественного ИНТ плавающего фрейм; общественный ИНТ iSegment; текстура общественного CMDecoderTexture; }; [DllImport ( "DecodePlugin")] частный статический ехЬегп IntPtr CMAllocFrame (ссылка CMDecoderCtx CTX); Вызов в C #. CMDecoderFrame m_frame = новый CMDecoderFrame (); IntPtr frame_ptr = Marshal.AllocHGlobal (Marshal.SizeOf (TypeOf (CMDecoderFrame))); frame_ptr = CMAllocFrame (ссылка CTX); m_frame = (CMDecoderFrame) Marshal.PtrToStructure (frame_ptr, TypeOf (CMDecoderFrame)); Marshal.FreeHGlobal (frame_ptr); Проблема: Кажется, мне нужно добавить [MarshalAs (UnmanagedType.ByValArray, SizeConst =?)] В массив в структуры. Но я не знаю, размер, на самом деле функция C делает это. Кто-нибудь имеет хорошее решение, чтобы иметь дело с этим случаем для вызова функции гр с большим количеством указателей в Unity? Большое спасибо!
Dobbie
1

голосов
0

ответ
175

Просмотры

Аркыт - Как повернуть объект путем считывания?

Я использую Аркыт плагин для Unity, чтобы поместить 3D-объект на реальном мире поверхности. После размещения объекта, как я могу повернуть его, проводя пальцем по ней на экране iPhone?
Rumata
1

голосов
1

ответ
54

Просмотры

touch button - how to?

i'm working on Android touch button can shooting with no luck until now, my need to have button with name fire inside the canvase , can do the following: 1 - when pressed: shoot one bullet 2 - keep pressing: shoots bullets 3 - stop press: hold shooting i need help to update the following code with above needs: using UnityEngine; using System.Collections; using System.Collections.Generic; public class PlayerShoot : MonoBehaviour { public GameObject Ammo; // the shot GameObject FiredShot; public AudioClip bcgMusic; public List ShotsOnAir; //public AudioClip sound1; // Use this for initialization void Start (){ ShotsOnAir = new List(); } //update is called once per frame void Update (){ if (Input.GetKeyDown(KeyCode.Mouse0)){ //if (Input.GetButtonDown("Fire1")){ FiredShot = (GameObject)Instantiate(Ammo,transform.position,transform.rotation); ShotsOnAir.Add(FiredShot); AudioSource.PlayClipAtPoint (bcgMusic, transform.position); } if(ShotsOnAir != null){ int i=0; foreach (GameObject GB in ShotsOnAir){ ShotsOnAir[i].transform.position += ShotsOnAir[i].transform.forward * 200 * Time.deltaTime; i++; } } } }
Sa'ad Qasaymeh
1

голосов
1

ответ
53

Просмотры

Unity generate 2 different keys with same name in regedit

Simly I am using playerprefs` string saving code as follow: PlayerPrefs.SetString(variablename, variablevalue); Problem But I realized that somehow it generated 2 different hkeys for some variable names but not for others. Question What effects the value added at the end of variable names in regedit? Further Information I could erase the hkeys but it would be generated somehow later and it create a problem for me. 1 Key bird1_10 and 12 repeat but 13 and 14 not(I update the values multiple times) Update Actually I am using the same PlayerPrefs and variable names generated dynamically from 2 long strings. 1st- Comes from a text file and each line seperated by enters. 2nd- Writed by hand divided by "\n". The two texts are working correctly for the following format(first 2 chars create varible name the other 2 variable value): 1-1-1:0. I realize that if the value by hand does take empty value like 1-1 it works corretly but if the value comes from the text take emty value like 1-1 its variable name in regedit created differently. Strange, I worked all day but coulnot solve.
o Ak
1

голосов
0

ответ
504

Просмотры

How do I compare local and remote asset bundle versions without actually downloading the asset bundle?

То, что я пытаюсь сделать, я работаю на своем роде портал, чтобы продемонстрировать некоторые из проектов моей организация сделала в Unity. Для того, чтобы держать его гибким и легким, я разработал архитектуру, используя пакеты активов: Когда пользователь загружает на портал, все они загрузить самозагрузки сцена, которая загружает в главной сцене меню автоматически. Это сохраняет первоначальную загрузку очень легкий и позволяет им начать работать быстрее. Кроме того, имея все остальное в пачках активов увеличивает количество 3D-контента, мы можем обновлять после родов. Когда основные загрузки меню и нагрузки, пользователю предлагается список проектов. Каждый проект привязан к расслоению активов, которые могут быть загружены по требованию. Таким образом, если они заинтересованы в одном проекте, а не иначе, они не должны тратить время и дисковое пространство, загрузку проекта, они никогда не исследовать. Если они еще не загрузили пакет активов конкретного проекта, они подсказаны кнопку, чтобы загрузить его. Если они имеют более старую версию, они должны обновить его. Если все уточненный, они побудили его посетить. Проблема проблема, у меня есть два раза: Я не уверен, что это лучшая библиотека для использования, чтобы сделать то, что я пытаюсь сделать. В настоящее время, кажется, есть два способа загрузки расслоения активов WWW.LoadFromCacheOrDownload и UnityWebRequest.GetAssetBundle. Не говоря уже, Unity просто дразнили ResourceManager и адресуемые активов в Unite 2017 года (но это кажется далеко). Независимо от того, какой библиотеки я использую, и не кажется, есть встроенный способ проверки локальной или удаленную версии расслоения активов, не загружая сам пакет. То, что я сделал до сих пор В то же время, я уже использовали UWR для загрузки удаленного Bundle Manifest и Regexed для CRC и хэш. Теперь, глядя на Caching.IsVersionCached в Regex локальной версии и сравнить, но этот метод устарел ... Любые идеи?
David Rodriguez
1

голосов
0

ответ
228

Просмотры

Google PlayResolver в Unity Automated Build

У меня есть репозиторий, содержащий мою игру, и внутри него firebase сообщений и аналитика SDK импортирована из .unitypackage НО я не имею андроид зависимости установлено (те, которые играют Резольвер скачать я думаю, с помощью Gradle). Таким образом, в нормальном потоке с помощью редактора единства, играть распознаватель загрузит необходимые зависимости и поместить их в свой проект. Если я построить все работает. Проблема в автоматизированной сборке, где мы называем единство с помощью командной строки, выполняющей трубопровод на заказ сборки. В этом сценарии андроид зависимости не загружены (игра распознаватель загрузка не запускается), поэтому единство создать APK без этих зависимостей, и когда я пытаюсь открыть приложение он выходит из строя, потому что он не имеет какую-AndroidManifest коды. EDIT В моем трубопроводе у меня есть скрипт, который препроцессирования запустить этот код PlayServicesResolver. Resolve (continuePipeline, правда, б => debug.log ( "Успех:" + б)); если я веду свой трубопровод из MenuItem в редакторе единства сборки успеха загрузки зависимостей и создания APK, но когда я запускаю команду с единицей закрыт, процесс открытия Unity попытаться разрешить зависимости, но это убить BatchMode и остановить трубопровод. DependOn - группа: com.google.firebase артефакт: firebase-сообщения-единство версия: 4.3.0 packageIds: Хранилища: Активы / Firebase / m2repository UnityEngine.DebugLogHandler: Internal_Log (LOGTYPE, String, Object) UnityEngine.DebugLogHandler: LogFormat (LOGTYPE, Объект, String, Object []) UnityEngine.Logger: Log (LOGTYPE, объект) UnityEngine.Debug: Лог (Объект) Google.Logger: Log (String, LogLevel) GooglePlayServices.PlayServicesResolver: Log (String, LogLevel) GooglePlayServices.PlayServicesResolver:
Martin Gonzalez
1

голосов
1

ответ
369

Просмотры

скачано assetbundle не в Application.streamingAssetsPath

Я получаю assetbundle с помощью UnityWebRequest GetAssetBundle (строка Uri, UINT версия, UINT КРР); но Application.streamingAssetsPath пуста .... где загружается assetbundle и как нагружать скачал assetbundle? моя версия Единство 2017,3 Спасибо vmchar. но я не знаю, как использовать AssetBundle manifestBundle = AssetBundle.LoadFromFile (manifestBundlePath); AssetBundleManifest манифеста = manifestBundle.LoadAsset ( "AssetBundleManifest"); Что такое manifestBundlePath и как получить доступ к этому пути. Как я могу получить доступ к скачанным assetbundles перед использованием UnityWebRequest.GetAssetBundle если вы предлагаете путь, я действительно благодаря Вам.
BlueStar
1

голосов
0

ответ
106

Просмотры

Unity 5.6.3 Внутренняя ошибка редактора

я только что сделал чистую установку единства 5.6.3p1 (мне это нужно) и редактор происходит сбой в цикле с ошибкой: IndexOutOfRangeException: Индекс массива находится вне диапазона. UnityEditor.SceneRenderModeWindow.GetGUIContent (DrawCameraMode drawCameraMode) (в C: /buildslave/unity/build/Editor/Mono/Annotation/SceneRenderModeWindow.cs: 356) UnityEditor.SceneView.DoToolbarGUI () (в C: / buildslave / единство / сборки / Редактор / Моно / SceneView / SceneView.cs: 530) UnityEditor.SceneView.OnGUI () (в C: /buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs: 1502) (System.Reflection.MonoMethod.Invoke System.Object OBJ, BindingFlags invokeAttr, System.Reflection.Binder связующее, System.Object [] параметры, System.Globalization.CultureInfo культура) (в / Users / builduser / buildslave / моно / строить / MCS / класс / corlib / System. Отражение / MonoMethod.cs: 222) Создание редактор непригодной. Я понятия не имею, почему его ссылающийся на «C: / buildslave / ..», когда у меня нет такого каталога. Может быть, кто-то эту ошибку и знает, как ее решить?
choo84
1

голосов
0

ответ
39

Просмотры

Контроль пути вращения в Unity3D

На моем верхнем вниз 2.5D шутер, я usingQuaternion.LookRotation () и Quaternion.Lerp (), чтобы изменить вращение плеера в направлении мыши. Игрок вращает просто отлично, но мне нужен больше контроля над путем вращения. Проблема здесь в том, что LookRotation () всегда возвращает кратчайший путь, чтобы завершить вращение. Мне нужен игрок не всегда вращаться только по оси X, пока его либо +90 или -90, а затем переворачивать по оси Y на другую сторону. Это не имеет значения, если игрок вращается + или - 90 градусов по оси X, но идея состоит в том, чтобы всегда вращаться по оси X, прежде, чем листать от 1 кадра к другому, а затем снова вращается в направлении оси X щелчку. Вот некоторые изображения, иллюстрирующие выше. «X» в красном ниже, где «нажмите» произошло.
Fabio S.
1

голосов
0

ответ
399

Просмотры

Как динамически изменять ограничение ткани в коде? Unity 3d

Хорошо, так что у меня есть капсулы, что, когда он сталкивается с тканью Я хочу ткань прилипать к капсуле, я могу выбрать ограничения и заменить их новыми значениями. то, что у меня возникают проблемы с становится ограничений, что капсула находится ближе к на ткани, когда она сталкивается с тканью. Я думаю, что что-то делать с контактными точками капсулы коллайдера? в принципе, я пытаюсь сделать «ленту». Я могу столкнуться с тканью, но когда я перехожу капсулу обратно мне нужно, чтобы ткань прилипает к ней. Видео о том, что я до сих пор недействительным OnCollisionEnter (Collision седловины) {Rigidbody colRb = col.gameObject.GetComponent (); colRb.isKinematic = TRUE; // ------------------------------------------------ ------------------------ Vector3 ContactPoint = col.contacts [0] .point; // место, где столкновение на седловине для (INT I = 0; я <newConstraints.Length; я ++) {если (== ContactPoint tape.vertices [я]) {// Я должен выбрать только индексы которые находятся вблизи ContactPoint, не все из них, как и в этом случае с я newConstraints [I] .maxDistance = 0; tape.coefficients = newConstraints; }}}
BigDuke6
1

голосов
0

ответ
228

Просмотры

Как исправить исключение: ZenjectException: Не удается разрешить тип «А» при строительстве объекта с типом «B». Объект графа: B

Я пытаюсь загрузить сборные во время выполнения в один конкретный момент в моей государственной машине. Но я получаю это исключение во время выполнения. Все сцены проверки с помощью ярлыка Ctrl + Left майором Left + V. Контекст проблемы Мое состояние машины связыванию в контекст проекта: с помощью Zenject; Пространство имен AVF.StateMachine {/ ** * @class AVFStateMachineInstaller * Класс, используемый для обозначения установки конечного автомата * / общественного класса AVFStateMachineInstaller: MonoInstaller {/ ** * Установить привязки между объектами * / общественного переопределения недействительным InstallBindings () { . // Глобальный завод Container.Bind () AsSingle (); // государства фабрики Container.BindFactory () WhenInjectedInto (). Container.BindFactory () WhenInjectedInto (). Container.BindFactory () WhenInjectedInto (). }}} Государство будет создавать с функцией CreateState в AVFFactory класса. Нет проблем создания государства и перемещаться между ними, когда я хочу. Кроме случаев, когда я пытаюсь загрузить префаб, который содержит контекст игры объекта. Таким образом, я понимаю, что все управление государственной машины существует в только контекст проекта. Я положил, в инсталляторе контекста сцены, связывают заводы моих префабов: используя UnityEngine; используя Zenject; используя AVF.StateMachine; AVFSceneHubInstaller общественный класс: MonoInstaller {[SerializeField] GameObject mPrefabWeldingPedestal; [SerializeField] GameObject mPrefabSandboxPedestal; общественного переопределения недействительным InstallBindings () {Container.BindFactory (). FromSubContainerResolve (). ByNewPrefab (mPrefabSandboxPedestal). WhenInjectedInto (); . Container.BindFactory () FromSubContainerResolve () ByNewPrefab (mPrefabWeldingPedestal) .WhenInjectedInto (). }} Мой сборного содержит контекст игры объекта с установщиком: с помощью UnityEngine; используя Zenject; общественный класс AVFSandboxPedestalInstaller: MonoInstaller {[SerializeField] частные геймобжекты mPrefab; [SerializeField] частная GameObject mAttachObject; общественного переопределения недействительным InstallBindings () {Container.BindInterfacesAndSelfTo () .FromComponentInNewPrefab (mPrefab) .UnderTransform (mAttachObject.transform) .AsSingle (); }} И компонент для использования объекта с заводом: с помощью UnityEngine; используя VRTK; используя Zenject; класс AVFSandboxPedestal общественности: VRTK_InteractableObject {общественного недействительными Start () {Debug. LogWarning ( "HELLO песочнице"); } Общественного переопределение недействительного OnInteractableObjectUsed (InteractableObjectEventArgs е) {base.OnInteractableObjectUsed (е); Debug.LogWarning (gameObject.name + "Used"); } Общественного класса Фабрика: Фабрика {}} Мое состояние, кто нуждается экземпляр фабрики, как, что и когда я хочу, чтобы создать этот объект я достигаю исключение, потому что он не может разрешить тип AVFSandboxPedestal.Factory: с помощью UnityEngine; используя Zenject; используя Mimbus.StateMachine; используя AVF.Context; Пространство имен AVF.StateMachine {/ ** * @class AVFSelectJobState * Класс, используемый для обозначения выбора состояния должностного приложения * / общественный класс AVFSelectJobState: MbStateEntity {// класс полей частных AVFStateManager только для чтения mStateManager; / ** <Государственный менеджер * / частный AVFContext mContext только для чтения; / ** <Контекст приложения * / частных ReadOnly AVFHeadState mHeadState; / ** <Общее состояние всех государств и сцена * / частное только для чтения AVFSandboxPedestal.Factory mSandboxPedestalFactory; / ** <* / / ** * Конструктор * @param [в] pStateManager государственный менеджер приложения * @param [в] pContext контексте приложения * / общественного AVFSelectJobState (AVFStateManager pStateManager, AVFContext pContext, AVFHeadState pHeadState, AVFSandboxPedestal. Фабрика pSandboxPedestalFactory) {this.mStateManager = pStateManager; this.mContext = pContext; this.mHeadState = pHeadState; this.mSandboxPedestalFactory = pSandboxPedestalFactory; } / ** * Инициализировать этот объект * / общественное переопределение недействительным Initialize () {debug.log ( "Выбор задания начальное состояние"); this.mSandboxPedestalFactory.Create (); } // Другие строки кода ..... Я уже попробовать, я думаю, что проблема: у меня есть состояние машина и состояние в контекст проекта и мой сборном в своем собственном контексте. Таким образом, по-видимому, он не может работать. (Нет?) Так что я пытаюсь добавить связующий компонент Zenject на моем сборном, я добавляю AVFSandboxPedestal в нем и добавить контекст проекта в нем тоже. Но это не работает. Я пытаюсь создать фабрику за пределами класса AVFSandboxPedestal и привязать его к контексту проекта с компонентом Zenject Binding. (Но я позволяю привязки в установщике в контексте сцены во время сцены. Может быть, это не вызовет ошибку, но это один), чтобы связать класс AVFSandboxPedestal с контекстом сцены. Но ничто не похоже на работу. Я из решений этой проблемы и читать документацию снова и снова не помогаю мне прямо сейчас. NB: Я не хочу, фактические сборные сохраняются во всех сценах только в реальной сцене. Но состояние машина должна сохраняться во всех сценах. NB: Если вам нужно больше точностей. Просто спроси. ;) Спасибо ! :) Может быть, это не вызовет ошибку, но это один), чтобы связать класс AVFSandboxPedestal с контекстом сцены. Но ничто не похоже на работу. Я из решений этой проблемы и читать документацию снова и снова не помогаю мне прямо сейчас. NB: Я не хочу, фактические сборные сохраняются во всех сценах только в реальной сцене. Но состояние машина должна сохраняться во всех сценах. NB: Если вам нужно больше точностей. Просто спроси. ;) Спасибо ! :) Может быть, это не вызовет ошибку, но это один), чтобы связать класс AVFSandboxPedestal с контекстом сцены. Но ничто не похоже на работу. Я из решений этой проблемы и читать документацию снова и снова не помогаю мне прямо сейчас. NB: Я не хочу, фактические сборные сохраняются во всех сценах только в реальной сцене. Но состояние машина должна сохраняться во всех сценах. NB: Если вам нужно больше точностей. Просто спроси. ;) Спасибо ! :) Если вам нужно больше точностей. Просто спроси. ;) Спасибо ! :) Если вам нужно больше точностей. Просто спроси. ;) Спасибо ! :)
Zethzer
1

голосов
1

ответ
131

Просмотры

Контролируемые основной тон или частота сдвиг в Unity3d

TL; DR - Я ищу плагин или технику, чтобы передать сдвиг аудио активов точно. Я работаю на Unity3D проекта создания бинауральных VR музыки визуализатор (почему я стараюсь). Я создал основной визуализатор и компоненты музыкального проигрывателя довольно легко с обучающими онлайн, но я хотел бы, чтобы найти простой способ изменения частоты звуковых дорожек. Это похоже на шаг сдвига, который поддерживает единство через аудио питчшифтер эффект, но это выражается как множитель, а затем единицы измерения скорости воспроизведения и эффектов. Тем не менее, мне нужно, чтобы передать сдвигать аудио, сохраняя при этом скорость воспроизведения в качестве обычных аудио пьес в одном ухе, а Effected аудио воспроизводится в другом. Цель состоит в том, что я могу использовать стандартный ползунок, чтобы решить частоту бинауральных волн, и связать его с левым и правым аудиовыходом,
Drew Lion
1

голосов
1

ответ
25

Просмотры

Я хочу изменить сцен, когда Lives Значение получается ноль, но моя GameOver сцена не открывается, а отсчет значений жизней продолжается

Это мой code.I использовать SceneManager.LoadScene но это, кажется, не работает вообще, я пытаюсь поставить его каждый where.It викторина игра, которая имеет 2 lives.if вы ответили неправильно два вопроса я хочу загрузить новую сцену под названием «GameOver.unity», который находится в моей папке сцены в Assets.The игра окончена сцена простая сцена, которая говорит, что Game Over и имеет игру еще раз кнопку (которая не работает либо) GameManager общественного класса: MonoBehaviour {общественности вопрос [] вопросы; частные статические unansweredQuestions Список; частный вопрос currentQuestion; Уровень общественного текста; публичный текст Lives; Оценка общественного текста; [SerializeField] частное Текст factText; [SerializeField] частное Текст trueAnswerText; [SerializeField] частное Текст falseAnswerText; [SerializeField] частный аниматор аниматор; [SerializeField] частные поплавок timeBetweenQuestions = 1f; INT = 0; частный статический INT scoreValue; частный статический ИНТ levelValue = 3; частный статические INT levelOutput; частный статический ИНТ livesValue = 2; аннулированию Start () {если (unansweredQuestions == NULL || unansweredQuestions.Count == 0) {unansweredQuestions = questions.ToList (); } SetCurrentQuestion (); } Недействительного SetCurrentQuestion () {INT questionIndex = я; currentQuestion = unansweredQuestions [questionIndex]; I = I + 1; factText.text = currentQuestion.fact; если (currentQuestion.isTrue) {trueAnswerText.text = "правильный"; falseAnswerText.text = "неправильно"; } Еще {trueAnswerText. текст = «НЕВЕРНО»; falseAnswerText.text = "правильный"; }} IEnumerator TransitionToNextQuestion () {unansweredQuestions.Remove (currentQuestion); выход возвращать новые WaitForSeconds (timeBetweenQuestions); levelValue ++; SceneManager.LoadScene (SceneManager.GetActiveScene () buildIndex.); } Общественного недействительными UserSelectTrue () {animator.SetTrigger ( "True"); если (currentQuestion.isTrue) {debug.log ( "ПРАВИЛЬНО!"); scoreValue = scoreValue + 10; } Еще {debug.log ( "НЕПРАВИЛЬНО!"); livesValue = livesValue - 1; } StartCoroutine (TransitionToNextQuestion ()); } Общественного недействительными UserSelectFalse () {animator.SetTrigger (» } StartCoroutine (TransitionToNextQuestion ()); } Частная пустота Обновление () {levelOutput = levelValue / 3; Level.text = String.Format ( "Уровень: {0}", levelOutput); Lives.text = String.Format ( "Жизнь: {0}", livesValue); Score.text = String.Format ( "Счет: {0}", scoreValue); если (livesValue == 0) {SceneManager.LoadScene ( "GameOver", LoadSceneMode.Additive); }}} } StartCoroutine (TransitionToNextQuestion ()); } Частная пустота Обновление () {levelOutput = levelValue / 3; Level.text = String.Format ( "Уровень: {0}", levelOutput); Lives.text = String.Format ( "Жизнь: {0}", livesValue); Score.text = String.Format ( "Счет: {0}", scoreValue); если (livesValue == 0) {SceneManager.LoadScene ( "GameOver", LoadSceneMode.Additive); }}} если (livesValue == 0) {SceneManager.LoadScene ( "GameOver", LoadSceneMode.Additive); }}} если (livesValue == 0) {SceneManager.LoadScene ( "GameOver", LoadSceneMode.Additive); }}}
Natasa
1

голосов
0

ответ
138

Просмотры

UniWebView воспроизведения аудио из локального хранилища

Использование UniWebView мы пытаемся отобразить локально сохраняемый HTML-страницу для воспроизведения звука, который хранится в подпапке в том же месте, что и страница. В то время как это работает отлично для прошивки 10, 11; мы, кажется, есть проблема на прошивке 9, где звук не играет. После осмотра страницы в Safari, произошла ошибка при извлечении ресурса из локального хранилища, но он не сказал, почему. Реализация для воспроизведения звука является одинаковой для всех версий IOS. Хотел спросить, есть ли какие-либо ограничения на прошивку 9 или конкретные правила, как извлекающие и воспроизводить аудиофайлы из локального хранилища? PS .: UniWebView обертка для WkWebView на скриншоте ошибки IOS от Safari
Dalius Grazinskis
1

голосов
0

ответ
275

Просмотры

Unity3d: Загрузка ScriptableObject из библиотеки DLL

У меня есть 2 проекта, первый проект является автономным приложение, в котором я создаю assetbundle с парой префабов и с скриптовым объектом, который содержит некоторые настройки для моего приложения. (У меня есть около 30 автономных приложений и каждый из них имеет свой собственные assetbundle). Второй проект представляет собой магазин приложений (например, Kindle), что пользователи могут приобрести свои приложения и использовать их в нем, вместо покупки через магазин приложений или Google Play. Так что для меня, чтобы управлять код более легко, я создал DLL из моего первого проекта. Все идет нормально. Когда я пытаюсь загрузить объект в поддерживающей сценарии моего второго проекта (это внутри DLL сейчас), я получаю нулевую ссылку исключение, debbuging его имена его показать мне, что assetbundle содержит файл настроек. Это мой скрипты объект: BookOnLoadSettings общественного класса: ScriptableObject {публичная строка BookName = ""; общественные ИНТ NUMBEROFPAGES; BOOL isMultiResoluion общественности = ложь; BOOL UsePageSelectionPanel общественности = ложь; общественного BookInnerPagesTransition.BookDirectionType BookDirection = BookInnerPagesTransition.BookDirectionType.Rtl; общественное ScreenOrientation Ориентация = ScreenOrientation.Landscape; общественные InnerPagesUIButtonsSettings innerPagesUIButtonsSettings; общественный AudioClip soundTrackClip; общественный поплавок SoundtrackVolum = 0.5f; } И это код, где я получаю пустое исключение: частная пустота OnGUI () {если (GUI.Button (новый Rect (0, 0, 100, 100), "")) {вар имя_файла = "myBook.hdd" ; вар путь = Path.Combine (Application.streamingAssetsPath, Filename); Debug.log (путь); StartCoroutine (_run (путь)); }} Частная IEnumerator _run (строка путь) {запрос вар = AssetBundle.LoadFromFileAsync (путь); выход обратного запроса; вар assetBundle = request.assetBundle; если (assetBundle == NULL) {Debug.LogError ( "_ assetBundle равна нулю"); } Еогеасп (вар assetName в assetBundle.GetAllAssetNames ()) {debug.log ( "assetName:" + assetName); вар OBJ = assetBundle.LoadAsset (assetName); Debug.log (obj.GetType () Имя.); } // BookOnLoadSettings настройки = assetBundle.LoadAsset ( "onloadsettings.asset"); Debug.log ( "является настройки нулевой:" + (Настройки == NULL) .ToString ()); Выход возврат 0; } Так печатает название объекта внутри assetbundle, но не загрузить его, в то время как другие активы внутри assetbundle нагрузки, как и ожидалось. Эта проблема не возникает в моем первом проекте, где мои скрипты объект находится не внутри DLL. Так что я не так делаю? :) Спасибо.
SilverCrow
1

голосов
1

ответ
98

Просмотры

Предотвращение ColorMask затеняя части сетки объекта перечисляются

Я пытаюсь использовать затенение, чтобы предотвратить объект визуализируемых когда он покидает определенную область. Однако, при использовании поверхности шейдера, чтобы сделать это, чтобы исправить проблемы рисования я должен использовать буфер глубины. В настоящее время я делаю это с помощью Pass {ColorMask 0} Однако, это вызывает эффект, который не оказывает части сетки, которые находятся за нарисованные части цвета маски. Чтобы обойти это, я попытался просто завершить передачу, но отбрасывать фрагменты, это, однако, вызвало лицо, чтобы рендерить в неправильном порядке. Это потенциально может быть вызвано отбраковать Off в сценарии шейдерного ниже, однако, что это не обычный способ моя программа обрабатывает внутри рендеринга, это было просто быстро вещь, чтобы обеспечить приемлемые результаты без большого количества кода. Также происходит и с отбраковки Назад и отбраковки Off. Как я могу сделать так, что либо ColorMask 0 Безразлично» т заслонить то, что за этим стоит и что CG программа может быть использована, чтобы предотвратить проблемы с лицами рендеринга в неправильном порядке, когда все фрагменты отбрасываются? Shader код - Lit.shader Shader "Выбраковка / Lit" {Свойства {_Color ( "Color", цвет) = (1,1,1,1) _MainTex ( "Альбедо (RGB)", 2D) = "белый" {} _Glossiness ( "Сглаживание", диапазон (0,1)) = 0,5 _Metallic ( "Metallic", диапазон (0,1)) = 0,0 // Свойства обычно назначаемые сценарий, но может быть сделано вручную _SHOWCULL ( "Show Калл", Int ) = 0 _RADIUS ( "Радиус", поплавковый) = 0 _STARTX ( "Пуск Х", поплавковый) = 0 _STARTY ( "Пуск Y" Поплавок) = 0 _STARTZ ( "Пуск Z", поплавковый) = 0 _CENTREX ( "Центр ИКС", Поплавок) = 0 _CENTREY ( "Центр Y" Поплавок) = 0 _CENTREZ ( "Центр Z", поплавковый) = 0 _ENDX ( "Конец Х", поплавковый) = 0 _ENDY ( "End Y", поплавковый) = 0 _ENDZ ( "End Z", Float) = 0 _MODE ( "Mode", Int) = 0} SubShader {Метки { "Очередь" = "Transparent" "RenderType" = "Прозрачный" "IgnoreProjector" = "True"} LOD 200 смесь SrcAlpha OneMinusSrcAlpha ZWrite на перевале {// Рендеринг лица в неправильном порядке / * CGPROGRAM #pragma вершина верт #pragma фрагмент фраг fixed4 _Color; структура AppData {float4 вершину: ПОЗИЦИИ; }; структура v2f {float4 вершину: ПОЗИЦИИ; }; v2f верт (AppData v) {v2f о; o.vertex = UnityObjectToClipPos (v.vertex); вернуться O; } Fixed4 осколочной (v2f I): ЦВЕТ {отбрасывания; вернуться _Color; } ENDCG * / ColorMask 0} Cull Off // обычно не используется в качестве обеспечивает неправильный свет, но способ исправить не нужно для этого, и именно здесь, чтобы показать пример внутри CGPROGRAM #pragma поверхности прибоя Стандартного fullforwardshadows альфа #pragma предназначаться 3.0 sampler2D _MainTex; структура ввода {float2 uv_MainTex; float3 worldPos; }; половина _Glossiness; половина _Metallic; fixed4 _Color; UNITY_INSTANCING_CBUFFER_START (Реквизит) UNITY_INSTANCING_CBUFFER_END INT _SHOWCULL; плавать _RADIUS; плавать _STARTX; плавать _STARTY; плавать _STARTZ; плавать _CENTREX; плавать _CENTREY; плавать _CENTREZ; плавать _ENDX; плавать _ENDY; плавать _ENDZ; INT _MODE; недействительный по поиску (Вход IN, INOUT SurfaceOutputStandard о) {fixed4 с = tex2D (_MainTex, IN.uv_MainTex) * _Color; o.Albedo = c.rgb; o.Metallic = _Metallic; o.Smoothness = _Glossiness; o.Alpha = са; если (_MODE == 0) {// Для Cylinder если (SQRT (((IN.worldPos.x - _CENTREX) * (IN.worldPos.x - _CENTREX)) + ((IN.worldPos. г - _CENTREZ) * (IN.worldPos.z - _CENTREZ))) <_RADIUS && IN.worldPos.y> _STARTY && IN.worldPos.y <_ENDY) {} еще {отбрасывания; // игнорирует этот пиксель - оленья кожа сделать его}} иначе, если (_MODE == 1) {// Для сферы, если (SQRT (((IN.worldPos.x - _CENTREX) * (IN.worldPos.x - _CENTREX)) + ((IN.worldPos.y - _CENTREY) * (IN.worldPos.y - _CENTREY)) + ((IN.worldPos.z - _CENTREZ) * (IN.worldPos.z - _CENTREZ))) <_RADIUS) {} еще {отбросить; // игнорирует этот пиксель - оленья кожа сделать его}} иначе, если (_MODE == 2) {// Для куба, если (IN.worldPos.x> _STARTX && IN.worldPos.x <_ENDX && IN.worldPos.y> _STARTY && IN.worldPos.y <_ENDY && IN.worldPos.z> _STARTZ && IN.worldPos.z <_ENDZ) {} еще {отбрасывания; // игнорирует этот пиксель - оленья кожа сделать его}}}} ENDCG FALLBACK "Диффузный"} г> _STARTZ && IN.worldPos.z <_ENDZ) {} еще {отбрасывания; // игнорирует этот пиксель - оленья кожа сделать его}}}} ENDCG FALLBACK "Диффузный"} г> _STARTZ && IN.worldPos.z <_ENDZ) {} еще {отбрасывания; // игнорирует этот пиксель - оленья кожа сделать его}}}} ENDCG FALLBACK "Диффузный"}
Dan
1

голосов
1

ответ
201

Просмотры

C ++ Плагин не может задержать загрузить DLL

NpFactory :: NpFactory 0x00007FFEF051D6ED (PhysX3DEBUG_x64) [C: \ Users \ \ Jesse документы \ GitHub \ PhysX-3.4 \ physx_3.4 \ источник \ PhysX \ SRC \ npfactory.cpp: 122] PhysX :: NpFactory :: CreateInstance 0x00007FFEF0545721 (PhysX3DEBUG_x64 ) [C: \ Users \ \ Jesse документы \ GitHub \ PhysX-3.4 \ physx_3.4 \ источник \ PhysX \ SRC \ npphysics.cpp: 269] PhysX :: NpPhysics :: CreateInstance 0x00007FFEF0544DAA (PhysX3DEBUG_x64) [C: \ Users \ Джесс \ документы \ GitHub \ PhysX-3,4 \ physx_3.4 \ источник \ PhysX \ SRC \ npphysics.cpp: 831] PxCreateBasePhysics 0x00007FFF18D37FA3 (fractre) [C: \ Users \ Джесс \ документы \ GitHub \ доменная \ компилятор \ fractre \ fractre .cpp: 60] Инициализировать Я могу определенно подтвердить, что PhysX3CommonDEBUG_x64.dll и все другие библиотеки DLL присутствуют в каталоге плагинов (как Unity ожидает) и были жалобы, когда они пропали без вести, но теперь они были решены. Кроме того, я побежал окно»
AquaGeneral
1

голосов
1

ответ
255

Просмотры

Windows.Devices.SerialCommunication пространство имен в Unity3D

Я пытался общаться с последовательным портом, используя System.IO.Ports с помощью редактора Unity, и она работала. Но мне нужно, чтобы развернуть его на HoloLens, которые нуждаются в UWP применения в качестве сборки. (Https://answers.unity.com/questions/1467623/type-or-namespace-not-found-in-namespace-systemio.html)
Norair
1

голосов
1

ответ
403

Просмотры

Единство: получение максимум 10 из 20 вопросов викторины игры Множественный выбор [дубликат]

Этот вопрос уже есть ответ здесь: Выберите N случайных элементов из списка в C # 27 ответов Так что я следовал учебник игры Unity викторины и спрашивает, что если я хочу, чтобы игра присутствовала только до 10 вопросов, но пул вопросов имеют 20 или около того, так что это скрипт из учебника, что я несколько отредактирован. У меня есть сценарий под названием Game Controller аннулируются Start () {dataController = FindObjectOfType (); // Сохраняет ссылку на DataController таким образом мы можем запросить данные, необходимые для этого раунда currentRoundData = dataController.GetCurrentRoundData (); // Задать DataController для данных текущего раунда. В данный момент, у нас есть только один раунд - но мы могли бы расширить это questionPool = currentRoundData.questions; // Возьмите копию вопросов, чтобы мы могли перетасовать бассейн или уронить вопросы из него, не затрагивая исходное RoundData объекта timeRemaining = currentRoundData.timeLimitInSeconds; // Установить лимит времени для этого раунда на основе объекта RoundData UpdateTimeRemainingDisplay (); playerScore = 0; questionIndex = 0; ShowQuestion (); isRoundActive = TRUE; } Недействительного ShowQuestion () {RemoveAnswerButtons (); QuestionData questionData = questionPool [questionIndex]; // Получить QuestionData на текущий вопрос questionText.text = questionData.questionText; // Обновление questionText с правильным текстом для (INT I = 0; я <questionData.answers.Length; я ++) // Для каждого AnswerData в текущем QuestionData ... {GameObject answerButtonGameObject = answerButtonObjectPool.GetObject (); // Spawn в AnswerButton от объекта пула answerButtonGameObjects.Add (answerButtonGameObject); answerButtonGameObject.transform.SetParent (answerButtonParent); answerButtonGameObject.transform.localScale = Vector3.one; AnswerButton answerButton = answerButtonGameObject.GetComponent (); answerButton.SetUp (questionData.answers [I]); // Передайте AnswerData к AnswerButton так AnswerButton знает, что текст для отображения и является ли это правильный ответ}} Сценарий, Держа Вопросы и ответы, используя UnityEngine; используя System.Collections; используя UnityEngine.SceneManagement; DataController общественного класса: MonoBehaviour {общественные RoundData [] allRoundData; аннулируются Start () {DontDestroyOnLoad (геймобжекты); SceneManager.LoadScene ( "MenuScreen"); } Общественного RoundData GetCurrentRoundData () {вернуть allRoundData [0]; }} MonoBehaviour {общественные RoundData [] allRoundData; аннулируются Start () {DontDestroyOnLoad (геймобжекты); SceneManager.LoadScene ( "MenuScreen"); } Общественного RoundData GetCurrentRoundData () {вернуть allRoundData [0]; }} MonoBehaviour {общественные RoundData [] allRoundData; аннулируются Start () {DontDestroyOnLoad (геймобжекты); SceneManager.LoadScene ( "MenuScreen"); } Общественного RoundData GetCurrentRoundData () {вернуть allRoundData [0]; }}
beginner code
1

голосов
1

ответ
245

Просмотры

Единство: использовать проект UWP в единстве окон автономного приложения

Я делаю приложение окна автономного использования единства. Я хочу, чтобы записывать видео с ПК камеры и сохранить его локально. Единственное решение, которое я нашел проект UWP, который записывает видео и сохраняет его на ПК. Я хочу знать, если есть способ использовать это UWP решения в моих окнах автономного приложения. Для C # проектов (не UWP), я строю его DLL и использовать его в качестве библиотеки DLL в моем приложении. Мне нужно найти способ сделать так же, как это с проектом UWP. Edit 1: Я попытался Unity VideoCapture Пример как в редакторе и строить. В редакторе единства, приложение работает без ошибок, но он не входил в эту функцию «VideoCapture.CreateAsync ()», так как они сказали, что он не работает с редактором. Когда я пытался построить для окон Standalone сборки, это дает мне эту ошибку: «Активы / скрипты / Контроллеры / Другой / VideoCaptureExample.cs (4,26): CS0234 об ошибке: Тип или пространство имен имя «WebCam» не существует в пространстве имен «UnityEngine.XR.WSA». Вы пропущена ссылка на сборку?»
Bilal Sehwail
1

голосов
1

ответ
166

Просмотры

Unity3D Cursor.visible and OnEnable

I find a strange behavioural when trying to enable cursor. this Work as Expect void Start() { Debug.Log("enabled"); Cursor.visible = true; Cursor.lockState = CursorLockMode.Locked; Cursor.lockState = CursorLockMode.None; } this won't at all void OnEnable() { Debug.Log("enabled"); Cursor.visible = true; Cursor.lockState = CursorLockMode.Locked; Cursor.lockState = CursorLockMode.None; } both printing to console, But in OnEnabled cursor remain hidden, the script is enabled My last try is this void Start() { EnableCursor(); } void EnableCursor() { Debug.Log("enabled"); Cursor.visible = true; Debug.Log(Cursor.visible); Cursor.lockState = CursorLockMode.Locked; Cursor.lockState = CursorLockMode.None; } works same but void OnEnable() { EnableCursor(); } void EnableCursor() { Debug.Log("enabled"); Cursor.visible = true; Debug.Log(Cursor.visible); Cursor.lockState = CursorLockMode.Locked; Cursor.lockState = CursorLockMode.None; } is not working
Jiří Kořenek
1

голосов
0

ответ
368

Просмотры

Combine smoothness and metallic with frag Shader

I'm trying to add some Smoothness and Metallic to my custom shader in order to have dark texture for day/night cycle. For the moment, i have a procedurale planet and my shader draw different textures based on height (distance between center of planet and vertex at surface). Until there, it works ! Now I really need to add Smoothness and Metallic to material but with my shader the textures of my procedurale planet is black and dont know why ? I have a pass for frag and then a surf function for smoothness and metallic. Why this doesn't work please ? However when I look at the material icon and I change value it looks nice but procedurale planet is always black no matter of value i change and the color i set. Can't solve this problem since too long time. Please need some help. Thanks in advance. Here is my shader : Shader "Custom/Planet" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _Tex0 ("Tex 0", 2D) = "white" {} _Tex1 ("Tex 1", 2D) = "white" {} _Tex2 ("Tex 2", 2D) = "white" {} _Tex3 ("Tex 3", 2D) = "white" {} _Tex4 ("Tex 4", 2D) = "white" {} _Blend0to1and1to2 ("Blend between 0 and 1, 1 and 2", Vector) = (0,1,2,3) _Blend2to3and3to4 ("Blend between 2 and 3, 3 and 4", Vector) = (0,1,2,3) _Glossiness ("Smoothness", Range(0,1)) = 0.5 _Metallic ("Metallic", Range(0,1)) = 0.0 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 Pass { Blend SrcAlpha OneMinusSrcAlpha CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" #pragma target 3.0 sampler2D _Tex0; sampler2D _Tex1; sampler2D _Tex2; sampler2D _Tex3; sampler2D _Tex4; float4 _Blend0to1and1to2; float4 _Blend2to3and3to4; uniform float4 _Tex0_ST; uniform float4 _Tex1_ST; uniform float4 _Tex2_ST; uniform float4 _Tex3_ST; struct appData { float4 vertex : POSITION; float2 uv1 : TEXCOORD0; float2 uv2 : TEXCOORD1; float2 uv3 : TEXCOORD2; float2 uv4 : TEXCOORD3; }; struct v2f { float4 pos : SV_POSITION; float2 uv1 : TEXCOORD0; float2 uv2 : TEXCOORD1; float2 uv3 : TEXCOORD2; float2 uv4 : TEXCOORD3; float4 col : COLOR; }; #define PI 3.141592653589793 inline float2 RadialCoords(float3 a_coords) { float3 a_coords_n = normalize(a_coords); float lon = atan2(a_coords_n.z, a_coords_n.x); float lat = acos(a_coords_n.y); float2 sphereCoords = float2(lon, lat) * (1.0 / PI); return float2(sphereCoords.x * 0.5 + 0.5, 1 - sphereCoords.y); } v2f vert (appData vInput) { v2f output; output.pos = UnityObjectToClipPos (vInput.vertex); output.uv1 = TRANSFORM_TEX(vInput.uv1, _Tex0); output.uv2 = TRANSFORM_TEX(vInput.uv2, _Tex1); output.uv3 = TRANSFORM_TEX(vInput.uv3, _Tex2); output.uv4 = TRANSFORM_TEX(vInput.uv4, _Tex3); output.col = length(vInput.vertex); return output; } half4 frag (v2f fInput) : COLOR { half4 c0 = tex2D (_Tex0, fInput.uv1); half4 c1 = tex2D (_Tex1, fInput.uv2); half4 c2 = tex2D (_Tex2, fInput.uv3); half4 c3 = tex2D (_Tex3, fInput.uv4); half4 c4 = tex2D (_Tex4, fInput.uv1); if (fInput.col.x < _Blend0to1and1to2.x) { return c0; } if (fInput.col.x > _Blend0to1and1to2.x && fInput.col.x < _Blend0to1and1to2.y) { return lerp(c0,c1,((fInput.col.x - _Blend0to1and1to2.x)/(_Blend0to1and1to2.y-_Blend0to1and1to2.x))); } if (fInput.col.x > _Blend0to1and1to2.y && fInput.col.x < _Blend0to1and1to2.z) { return c1; } if (fInput.col.x > _Blend0to1and1to2.z && fInput.col.x < _Blend0to1and1to2.w) { return lerp(c1,c2,((fInput.col.x - _Blend0to1and1to2.z)/(_Blend0to1and1to2.w-_Blend0to1and1to2.z))); } if (fInput.col.x > _Blend0to1and1to2.w && fInput.col.x < _Blend2to3and3to4.x) { return c2; } if (fInput.col.x > _Blend2to3and3to4.x && fInput.col.x < _Blend2to3and3to4.y) { return lerp(c2,c3,((fInput.col.x - _Blend2to3and3to4.x)/(_Blend2to3and3to4.y-_Blend2to3and3to4.x))); } if (fInput.col.x > _Blend2to3and3to4.y && fInput.col.x < _Blend2to3and3to4.z) { return c3; } if (fInput.col.x > _Blend2to3and3to4.z && fInput.col.x < _Blend2to3and3to4.w) { return lerp(c3,c4,((fInput.col.x - _Blend2to3and3to4.z)/(_Blend2to3and3to4.w-_Blend2to3and3to4.z))); } return c4; } ENDCG } CGPROGRAM // Physically based Standard lighting model, and enable shadows on all light types #pragma surface surf Standard fullforwardshadows // Use shader model 3.0 target, to get nicer looking lighting #pragma target 3.0 sampler2D _Tex1; struct Input { float2 uv_MainTex; }; half _Glossiness; half _Metallic; fixed4 _Color; void surf (Input IN, inout SurfaceOutputStandard o) { // Albedo comes from a texture tinted by color fixed4 c = tex2D (_Tex1, IN.uv_MainTex) * _Color; o.Albedo = c.rgb; // Metallic and smoothness come from slider variables o.Metallic = _Metallic; o.Smoothness = _Glossiness; o.Alpha = c.a; } ENDCG } FallBack "Diffuse" }
Namnam
1

голосов
1

ответ
121

Просмотры

Как получить приложение Unity с помощью SQLite (SimpleSQL), работающих на Epson Moverio BT-300?

Я разрабатываю приложение AR в Unity, и мы используем плагин SimpleSQL SQLite для наших локальной базы данных. Это все работает хорошо, когда здание для окон, а также при создании для КГД R7 AR очки или мой Samsung Galaxy S7 (как Android OS, хотя КГД не является сертифицированным устройством Android). Но когда я установить и запустить APK на Moverio BT-300; загрузки приложения, но не может найти DB. Например кнопки и изображения, которые обычно загружаются из БД не загружаются. Изображения отображаются в виде белых квадратов вместо. Моя первая догадка, что это было что-то делать с application.persistentdatapath и что это может быть как-то отличаться от Moverio. Хотя я не совсем уверен, где SimpleSQL хранит свои данные. Я знаю, что он делает копию базы данных, которую я создал во время выполнения, но я не знаю, где что хранится. Я полагаю, что что-то на гарнитуре Moverio блокирует доступ приложения в нужную папку, где SimpleSQL БД SQLite хранится. Теперь я связался со службой поддержки Epson по отношению к этому много раз и не было никакого ответа. Любая помощь высоко ценится!
Salbrox
1

голосов
1

ответ
88

Просмотры

Сохранение значений данных сетки

Я создаю сетки на основе офф файлов CSV в формате «х, у, г, DataValue». На основе значения данных, я окрашивая вершину. Например, для значения 10-20 данных, это будет темно-зеленый, а на 20-30 светло-зеленый, и т.д ... У меня есть это работает, но я хотел бы быть в состоянии создать инструмент анализа для сетки , В основном я хочу, чтобы показать значение данных в точке бытия парили над мышью. Так что, если они нависли над вершиной, она показывает «значение данных = х». Однако после того, как сетка создаются я могу получить доступ только цвета, что значение данных в основном превращается в материал. Мне нужен способ для сохранения значения данных по отношению к каждой вершине. У меня есть около 450 000 строк данных, так что я нужен эффективный способ, чтобы найти значение данных. Я думал, что из двух вариантов: хранить вершины, сопоставленные значения данных, и поиск по карте, чтобы найти нужное значение данных (я думаю, что это могло бы меня слишком медленно) .. ИЛИ хранить значение данных в шейдере для каждой вершины, а затем при наведении курсора на вершину, доступ к шейдер, чтобы захватить значение данных. Я не уверен, как это сделать второй подход, или, если это лучший способ пойти об этом. Я просто искал эффективный способ пойти об этом.
sab ambrose
1

голосов
1

ответ
110

Просмотры

Unity 3D недропользованию Shader установка нормально для соответствующего освещения

Я пытаюсь написать простую волнообразную шейдер в Unity 2017.1.0f3 используя функцию греха, однако это вся неопределенная один цвет форма без переопределения нормалей так что он может получить право затенения. Однако, несмотря на моей математику я не могу показаться, чтобы получить эти нормалей выглядеть правильно, и, как вы можете видеть в GIF всех эти супер перепутались. Так вот, что я делаю: недействительным верт (INOUT appdata_full V, из входа O) {UNITY_INITIALIZE_OUTPUT (вход, о); // Просто основывая высоту волны на расстоянии от центра и время половина offsetvert = o.offsetVert = ((v.vertex.x * v.vertex.x) + (v.vertex.z * v.vertex.z )) * 100; // 100, чтобы компенсировать массивное масштабирование половины стоимости объекта = _Scale * Sin (-_ Time.w * _Speed ​​+ offsetvert * _Frequency) / 100; v.vertex.y + = значение; o.pos = v.vertex.xyz; } // Добавить Instancing поддержки шейдера. Вы должны проверить «Включить Instancing» на материалах, которые используют шейдеры. // См https://docs.unity3d.com/Manual/GPUInstancing.html для получения дополнительной информации о инстансов. // #pragma instancing_options assumeuniformscaling UNITY_INSTANCING_CBUFFER_START (Реквизит) // помещаем больше за экземпляр свойства здесь UNITY_INSTANCING_CBUFFER_END пустот прибой (вход IN, INOUT SurfaceOutputStandard о) {// Вычислить новые нормалей // См МАТЕМАТИКА (1) для того, как я получаю у-float3 норма = (0, SQRT (1 / (1 + 1 / (- 100 / (_ Масштаб * _Frequency * сов (_Time.w * _Speed ​​+ IN.offsetVert * _Frequency))))), 0); // См Math (2) для того, как я получаю й и г поплавок derrivative = _Scale * _Frequency * соз (-_ Time.w * _Speed ​​+ IN.offsetVert * _Frequency) / 100; float3 норма = (0, SQRT (1 / (1 + 1 / (- 1 / (derrivative)))), 0); Остальные плавают = 1 - Pow (norm.y, 2); norm.x = SQRT (оставшееся / (1 + IN.pos.z * IN.pos.z / (IN.pos.x * IN.pos.x))); norm.z = SQRT (1-norm.y * norm.y-norm.x * norm.x); // Предположим, что это отворачивается от центра, если (IN.pos.z
F. ElRayes
1

голосов
0

ответ
26

Просмотры

Наклон головы в Unity VR

Поведение: когда я склоняю голову в единстве сцена движется со мной вместо того, чтобы камера идет луки, так что я могу видеть или достичь немного дальше. Ожидаемое: Сцена остается в том же положении, но похоже на смешанной реальности портала я преклоняю голову и достичь немного дальше. Шаги для воспроизведения: Выполните начальную установку часть этой ссылке: https://blogs.msdn.microsoft.com/uk_faculty_connection/2017/10/09/mixed-reality-immersive-a-beginners-guide-to-building-for -mr / Спасибо заранее!
André Marques
1

голосов
1

ответ
137

Просмотры

Доступ Картонная VR Установка от Unity

В то время как в Картонная VR-режим вы можете использовать зубчатую значок в правом верхнем углу-. Эта кнопка доступа к настройкам VR. Я хочу, чтобы получить к нему доступ непосредственно внутри Unity3D. Я не могу найти никаких апите решения, которые доступны или упоминать. пожалуйста помоги :)
Maik Bohlmann
1

голосов
0

ответ
104

Просмотры

Как сгладить геометрию с Morpher?

Как сгладить геометрию с Morpher присоединенной в SceneKit или Unity 3D? Я слышал, что среднее значение нормали вершин будет работать, но у меня нет идеального, как это сделать. Например, у меня есть грубая сфера, как это, как я могу сгладить ее, изменяя нормали вершин? subdivisionLevel не работает, потому что есть некоторая Morpher анимация на нем.
ooOlly
1

голосов
0

ответ
454

Просмотры

Can't open front camera while using ARCore with the back camera on some devices

Я разработка Open Source приложение в Unity, чтобы играть с ARCORE. В ней я использую следующий код для отображения видео с помощью захвата с камеры передней облицовочной на плоскости, помещенной в среде пользователя в AR. MirrorController общественный класс: MonoBehaviour {частное WebCamTexture webCamTexture; общественного недействительными воспроизведения () {если (webCamTexture == NULL) {WebCamDevice [] = WebCamTexture.devices устройства; Еогеасп (WebCamDevice устройства в устройствах) {если (device.isFrontFacing) {webCamTexture = новый WebCamTexture (device.name); GetComponent () material.mainTexture = webCamTexture. webCamTexture.Play (); перерыв; }}}}} Это работало нормально, когда я тестировал его на 2 пикселя, но когда я попробовал приложение на Samsung Galaxy S8, я получил следующее предупреждение в журнале: W / CameraBase: Произошла ошибка при подключении к камере 1 : Статус (-8): '8: connectHelper: 1647: Слишком много камер уже открытых, не может открыть камеру "1"' Это, кажется, поднимается, при вызове webCamTexture.Play (). Я не мог найти что-нибудь об этой ошибке в Интернете. Я нахожу это особенно странно, потому что приложение камеры на S8 имеет функцию, где вы можете сделать снимок, используя обе камеры одновременно. Кто-нибудь знает, как это можно решить? 8: connectHelper: 1647: Слишком много камер уже открытых, не может открыть камеру «1»»Это, кажется, поднимается, при вызове webCamTexture.Play (). Я не мог найти что-нибудь об этой ошибке в Интернете. Я нахожу это особенно странно, потому что приложение камеры на S8 имеет функцию, где вы можете сделать снимок, используя обе камеры одновременно. Кто-нибудь знает, как это можно решить? 8: connectHelper: 1647: Слишком много камер уже открытых, не может открыть камеру «1»»Это, кажется, поднимается, при вызове webCamTexture.Play (). Я не мог найти что-нибудь об этой ошибке в Интернете. Я нахожу это особенно странно, потому что приложение камеры на S8 имеет функцию, где вы можете сделать снимок, используя обе камеры одновременно. Кто-нибудь знает, как это можно решить?
HePa
1

голосов
1

ответ
747

Просмотры

Единство 3D animation.MatchTarget с корнем движения влияет только положение или только вращение

Предпосылки В Unity 3D двигатель версии 2017.3.1f1, я работаю над 3D-персонаж управляется mecanim корня движения. Мне нужно повернуть персонажу ровно 180 ° вокруг оси Y. (вверх), так что затем идет влево или вправо (это 2D игра). Потому что это mecanim, углы не всегда точны и характер оказывается иногда 177 °, иногда 181 °. Это является нежелательной ошибка вызывает характер, чтобы пройти в Z-оси во время ходьбы. Поэтому я решил исправить окончательный угол с встроенной функцией animator.MatchTarget () (https://docs.unity3d.com/ScriptReference/Animator.MatchTarget.html). Проблема Animator.MatchTarget не перегрузили функцию, чтобы соответствовать только вращение, поэтому мне нужно, чтобы войти в окончательную позицию поворота анимации клипа (Повернуть анимация есть движение корней и изменение положения). Я предположил член переменной Animator. TargetPositon делает работу: // Следующий скрипт прилагается к знаку вращения состояния Animator с помощью System.Collections; используя System.Collections.Generic; используя UnityEngine; GenericState общественного класса: StateMachineBehaviour {общественного поплавка targetAngle_ = 180.0f; переопределять общественного недействительный OnStateUpdate (аниматор аниматор, AnimatorStateInfo stateInfo, Int layerIndex) {Кватернионных targetRotation_ = Quaternion.Euler (0, targetAngle_, 0); animator.MatchTarget (animator.targetPosition, targetRotation_, AvatarTarget.Root, новый MatchTargetWeightMask (Vector3.one, 1f), 0f, 1f); }} Но это Безразлично» т включать движение корня поэтому символ заканчивается в точном положении, как он начал поворот анимацию. Существует еще одна переменная Animator.RootPosition (https://docs.unity3d.com/ScriptReference/Animator-rootPosition.html), но это только держит текущую позицию символа. Временное решение Единственное решение, которое я могу думать о том, чтобы читать данные анимации в режиме редактора, сохранять движение корня смещения, а затем применить для каждой анимации во время выполнения. Это решение усложненное, и я ищу для простой альтернативы «матч только вращение и читать конечное положение от движения корня в анимации». Спасибо Временное решение Единственное решение, которое я могу думать о том, чтобы читать данные анимации в режиме редактора, сохранять движение корня смещения, а затем применить для каждой анимации во время выполнения. Это решение усложненное, и я ищу для простой альтернативы «матч только вращение и читать конечное положение от движения корня в анимации». Спасибо Временное решение Единственное решение, которое я могу думать о том, чтобы читать данные анимации в режиме редактора, сохранять движение корня смещения, а затем применить для каждой анимации во время выполнения. Это решение усложненное, и я ищу для простой альтернативы «матч только вращение и читать конечное положение от движения корня в анимации». Спасибо
Filip Pokorny
1

голосов
2

ответ
217

Просмотры

найти действительные слова в случайно сгенерированных символов в C # единства

Я вызвал случайные символы во время выполнения и после создания мне нужно знать количество допустимых слов, образованных с перечисленными символами. И это не в матричной форме, он будет отображаться в одной строке. Это код для генерации случайных символов: общественного недействительный GenerateLettersAtStart () {для (INT I = 0; я
Alexchandriyaa P
1

голосов
0

ответ
233

Просмотры

Лучший способ установить геймобжекты слой программно?

Я знаю, что вы можете создать маску слоя с помощью кода с помощью функции LayerMask.NameToLayer, и что маски общественного слоя могут быть установлены с помощью выпадающего меню в editor.LayerMask обеспечивает значение геттер, но на самом деле возвращает битовую маску, а не целое слоя. Я мог бы получить целое значение, но, к сожалению, единственный способ, чтобы инвертировать функцию Bitshift является использование логарифм, и те, довольно дорого .... так что если есть много кадров, это то, что вы не хотите, прямо ? Как я могу установить LayerMask в качестве игрового объекта Layer (GameObject OBJ, а затем obj.layer =?). Пожалуйста, кто-нибудь поможет мне.
AMIT
1

голосов
0

ответ
354

Просмотры

Попробуйте получить доступ и изменить значение пикселов камеры на Vuforia и единстве

I would like to access the camera (pc or mobile) before recognition is done. I want to change the value of the pixels in function of the brightness and the contrast. My goal is to optimize the tracking with vuforia by stretching or equalizing the values ​​in the form of a histogram when changing light. I retrieve pixel values from the Vuforia camera image : I manage to recover the values ​​of the pixels of the image but I can not modify them. I tried this method for set all pixel at 0 value on OnTrackablesUpdated method : image.Pixels.SetValue(byte value, index); My recognition work again it should not work if all my pixels are at zero. How I can change pixels camera values ? Here is my code : using UnityEngine; using System.Collections; using Vuforia; using System; public class CameraImageAccess : MonoBehaviour { private Image.PIXEL_FORMAT mPixelFormat = Image.PIXEL_FORMAT.UNKNOWN_FORMAT; private bool mAccessCameraImage = true; private bool mFormatRegistered = false; void Start() { mPixelFormat = Image.PIXEL_FORMAT.RGB888; // Use RGB888 for mobile // Register Vuforia life-cycle callbacks: VuforiaARController.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted); VuforiaARController.Instance.RegisterTrackablesUpdatedCallback(OnTrackablesUpdated); VuforiaARController.Instance.RegisterOnPauseCallback(OnPause); } void OnVuforiaStarted() { // Try register camera image format if (CameraDevice.Instance.SetFrameFormat(mPixelFormat, true)) { Debug.Log("Successfully registered pixel format " + mPixelFormat.ToString()); mFormatRegistered = true; } else { Debug.LogError( "\nFailed to register pixel format: " + mPixelFormat.ToString() + "\nThe format may be unsupported by your device." + "\nConsider using a different pixel format.\n"); mFormatRegistered = false; } } /// /// Called each time the Vuforia state is updated /// void OnTrackablesUpdated() { if (mFormatRegistered) { if (mAccessCameraImage) { Vuforia.Image image = CameraDevice.Instance.GetCameraImage(mPixelFormat); if (image != null) { byte[] pixels = image.Pixels; } } } } /// /// Called when app is paused / resumed /// void OnPause(bool paused) { if (paused) { Debug.Log("App was paused"); UnregisterFormat(); } else { Debug.Log("App was resumed"); RegisterFormat(); } } /// /// Register the camera pixel format /// void RegisterFormat() { if (CameraDevice.Instance.SetFrameFormat(mPixelFormat, true)) { Debug.Log("Successfully registered camera pixel format " + mPixelFormat.ToString()); mFormatRegistered = true; } else { Debug.LogError("Failed to register camera pixel format " + mPixelFormat.ToString()); mFormatRegistered = false; } } /// /// Unregister the camera pixel format (e.g. call this when app is paused) /// void UnregisterFormat() { Debug.Log("Unregistering camera pixel format " + mPixelFormat.ToString()); CameraDevice.Instance.SetFrameFormat(mPixelFormat, false); mFormatRegistered = false; } }
DevLoots
1

голосов
0

ответ
2k

Просмотры

Gradle Сборка Failed - Unity

Всякий раз, когда я пытаюсь построить APK с помощью Unity. Моя Gradle сборка получает неудачу. Я получаю эти 3 ошибки каждый раз. CommandInvokationFailure: Gradle строить не удалось. C: \ Program Files \ Java \ jdk1.8.0_151 \ Bin \ java.exe -classpath "F: \ Unity \ Editor \ Data \ PlaybackEngines \ AndroidPlayer \ Tools \ Gradle \ Lib \ Gradle-пусковая-4.0.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs = -Xmx2048m" "assembleRelease" STDERR [FAILURE: Строить неудачу с исключением. Что пошло не так: Возникла проблема настройки корневого проекта «gradleOut». Не удалось разрешить все зависимости для конфигурации ": путь к классам. Не удалось загрузить метаданные модуля из C: \ Users \ Ashwin.gradle \ кэши \ модули-2 \ метаданные-2.23 \ дескрипторы \ com.google.jimfs \ jimfs \ 1,1 \ 22da77b0d76ea8df17298218f3ec1f87 \ descriptor.bin Попытка: Запуск с --stacktrace возможностью получения трассировки стека. Запуск с --info или --debug вариантом, чтобы получить больше вывода журнала. BUILD FAILED в 17s] стандартный вывод [Запуск Gradle Daemon (последующее выполнение сборки будет быстрее)] код выхода: 1 UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program р, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String ErrorMsg) UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo фунтов на квадратный дюйм, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String ErrorMsg) UnityEditor.Android.AndroidJavaTools.RunJava (System.String арг, System.String WorkingDir, System.Action1 прогресс, ошибка System.String) UnityEditor.Android.GradleWrapper.Run (System.String WorkingDir, System.String задача, прогресс System.Action1) Rethrow в GradleInvokationException:
Ashwin
1

голосов
0

ответ
200

Просмотры

Приложения в категории детей в IOS

У меня есть Цеят дети приложений в Unity3D и я установил родительские ворота в AdMob TagForChildDirectedTreatment истины в AdRequest.Builder. яблоко ошибка магазина возврат: Ориентировочные 1.3 - Безопасность - Дети Категория Вы выбрали категорию Детей для вашего приложения, но он включает в себя ссылку из приложения или участвует в торговле без получения разрешения родителей. Пожалуйста, смотрите приложенные скриншоты для деталей. Следующие шаги, чтобы решить эту проблему, пожалуйста, обновите приложение, чтобы добавить родительские ворота до того, как пользователь может оставить приложение или заниматься торговлей. Вы также должны убедиться, что родительские ворота не могут быть отключены. Ресурсы Для получения дополнительной информации о родительских ворот, пожалуйста, ознакомьтесь с родительской страницей ресурса Gates. частный AdRequest CreateAdRequest () {возвратить новый AdRequest.Builder () .AddTestDevice (AdRequest.TestDeviceSimulator). AddTestDevice ( "0123456789ABCDEF0123456789ABCDEF") .AddKeyword ( "Игра") .TagForChildDirectedTreatment (правда) .AddExtra ( "color_bg", "9B30FF") Строить (); }
phucbac
1

голосов
1

ответ
26

Просмотры

Scrollview только горизонтально выдвижной

Я хотел бы иметь выдвижную горизонтальный вид прокрутки, я инстанцировании изображения в него, но образы получают помещают 1-й и второй по горизонтали, но другие идут вертикально. Как я должен изменить вид прокрутки, чтобы иметь возможность создать экземпляр только по горизонтали? Спасибо! Код, я использую: общественный GameObject ItemTemplet; общественное преобразование Tr; общественного недействительными AddIcons () {GameObject createImage = Instantiate (ItemTemplet) в качестве GameObject; createImage.transform.SetParent (Tr.transform, ложь); }
David

Просмотр дополнительных вопросов