2016-08-02 12 views
0

Mein Code lädt seltsamerweise nicht die Benutzerbilder von der lokalen Festplatte zum gameObject namens "planeLogo". Die Datei mit der Funktion ImageUploaderCaptureClick() heißt ImageUploader1.jslib und befindet sich im Ordner plugins/WebGl.Unity3D - Lassen Sie Benutzer Bild für Webgl laden

Hier ist das Skript

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; 
    } 
} 

Und hier ist, wie ich mit den Ereignissen beschäftigen.

enter image description here

Ich habe alles versucht, ich weiß, und das Projekt hält innerhalb der Einheit arbeiten, aber nicht, wenn es als html (webgl) kompiliert.

+0

Führen Sie einen einfachen Webserver aus. Es dauert nur ein paar Sekunden, um es einzurichten. [Wie wäre es mit diesem] (https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb?hl=de)? oder [diese] (http://stackoverflow.com/questions/12905426/what-is-a-faster-alternative-to-pythons-simplehttpserver/) – gman

Antwort

0

Unity WebGL haben keinen Zugriff auf das Dateisystem

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

Sie werden Ihr Bild von einem Server holen müssen. Es ist Ghetto, aber der einzige Weg, wie ich es sehen könnte, ist, wenn Sie etwas einrichten, wo der Server das Bild lokal holt und es an Ihr WebGL-Spiel weiterleitet.