2016-08-02 6 views
0

Мой код странно не загружает изображения пользователей с локального жесткого диска в gameObject под названием «planeLogo». Файл с функцией ImageUploaderCaptureClick() называется ImageUploader1.jslib и находится в папке plugins/WebGl.Unity3D - Позволяет загружать изображение пользователя для webgl

Вот сценарий

using UnityEngine; 
using System.Collections; 
using System.Runtime.InteropServices; 

public class LoadImage : MonoBehaviour 
{ 


    [DllImport("__Internal")] 
    private static extern void ImageUploaderCaptureClick(); 
    private Texture2D displayedTexture; 

    IEnumerator LoadTexture(string url) 
    { 
     WWW image = new WWW(url); 
     yield return image; 
     image.LoadImageIntoTexture(displayedTexture); 
    } 

    void FileSelected(string url) 
    { 
     StartCoroutine(LoadTexture(url)); 
    } 

    public void OnButtonPointerDown() 
    { 
#if UNITY_EDITOR 
     string path = UnityEditor.EditorUtility.OpenFilePanel("Open image", "", "jpg,png,bmp"); 
     if (!System.String.IsNullOrEmpty(path)) 
      FileSelected("file:///" + path); 
#else 
     ImageUploaderCaptureClick(); 
#endif 
    } 

    void Start() 
    { 
     displayedTexture = new Texture2D(1, 1); 
     GameObject.Find("PlaneLogo").GetComponent<MeshRenderer>().material.mainTexture = displayedTexture; 
     GameObject.Find("PlaneLogo").GetComponent<Renderer>().enabled = true; 
    } 
} 

И вот как я имею дело с событиями.

enter image description here

Я пробовал все, что я знаю, и проект продолжает работать в Unity, но не когда он скомпилирован как HTML (WebGL).

+0

Запустите простой веб-сервер. Для настройки потребуется всего несколько секунд. [Как об этом] (https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb?hl=ru)? или [эти] (http://stackoverflow.com/questions/12905426/what-is-a-faster-alternative-to-pythons-simplehttpserver/) – gman

ответ

0

Unity WebGL не имеет доступа к файловой системе

https://docs.unity3d.com/Manual/webgl-debugging.html

Вы должны будете получать изображение с сервера. Это гетто, но единственный способ увидеть, что это происходит, - это установить что-то там, где сервер получает изображение локально и передает его в вашу игру WebGL.