Cómo interactuar con los datos de una página web en Unity3d

1. Función de Unity que envía datos a la página web: Application.ExternalCall("SayHello",gameObject.name). Esta función llamará a la función SayHello en la página web, y gameObject.name es el. parámetro pasado.

2. La función de la página web para enviar datos a unity: utilice la función GetUnity().SendMessage(message, "AcceptName", buildingname) en la página web para llamar a la función en unity. El mensaje del parámetro de esta función está en la unidad. El objeto, AcceptName es la función en el objeto y buildingname es el parámetro pasado.

Las funciones en la página web son las siguientes:

1 función SayHello(mensaje){//Esta función recibe el valor del mensaje enviado desde unity y envía los datos procesados ​​de regreso en unity

2 jQuery.post('../Unity/javascript/DBhelper.ashx', {id:message}, función(datos)

3 {

4 var msg=JSON.parse(data);//Analizar datos json

5 var buildingname = msg[0].Building_name;

6 var buildingcategory=msg [0] .Building_category;

7 var buildingpic = msg[0].Building_pic;

8 GetUnity().SendMessage(message, "AcceptName", buildingname);//A la función MyFunction en el objeto de mensaje en unity envía el valor del nombre del edificio

9 GetUnity().SendMessage(message, "AcceptCategory", buildingcategory);

10

11 GetUnity ().SendMessage(message, "AcceptImg", buildingpic);

12 });

13 }

Esta función El mensaje de datos se pasa a DBhelper.ashx En DBhelper.ashx, se consultan los datos pasados ​​y se realizan otras operaciones, y luego se usa GetUnity().SendMessage(message, "AcceptName", buildingname) para pasar los datos procesados ​​buildingname a la función AcceptName. .

El siguiente es un script en Unity que puede implementar chino. Debido a la cantidad limitada de artículos sobre la implementación en chino, no lo explicaré aquí. Solo explico cómo recibir datos de una página web.

1 var ChineseSkin: GUISkin; //Aquí puedes seleccionar la fuente y configurarla en chino. Se recomienda configurar el editor en uft-8.

2

3 var buildingname:String;//Se usa para recibir el valor del nombre del edificio pasado desde la página web

4 var buildingcategory:String;//Usado Para recibir el valor de buildingcategory pasado desde la página web

5

6 var buildingpic:Texture2D;//Para recibir el valor de buildingpic pasado desde la página web

7 var windowRect0 = Rect (20, 20, 250, 200);

8 var enable:boolean;

9 función Awake(){

10 enable = false ;

11 }

12 función OnMouseDown () {

13 Application.ExternalCall("SayHello",gameObject.name);// Al La función SayHello en la página web envía datos gameObject.name

14 enable = true;

15 }

16 función AcceptName(bdname){//para recibir Datos enviados desde la página web

17 buildingname=bdname;

18 }

19 función AcceptCategory(buildingType){//Se utiliza para recibir datos devueltos de los datos de la página web

20 buildingcategory=buildingType;

21 }

22

23 función AcceptImg(img){

24 var www :WWW = new WWW("http://localhost:1166/Unity/images/"+img+"");

25 yield www;

26 edificiopic=www.texture;

27 }

28 función OnGUI(){

29 GUI.skin=chineseSkin;

30 if(enable)

31 {

32 windowRect0 = GUI.Window (0, windowRect0, DoMyWindow, "Property");

33 }

34 }

35 función DoMyWindow (windowID: int) {

36 GUI.Label(Rect(10,50,80,30),"Construcción Nombre" );

37 GUI.TextField(Rect(100,50,100,30),nombre del edificio);

38 GUI.Label(Rect(10,100,80,30)," tipo de edificio");

39 GUI.TextField(Rect(100,100,100,30),buildingcategory);

40

41 GUI.DrawTexture(Rect(10,150,200 , 50), buildingpic,ScaleMode.ScaleToFit,true,0);

42 if(GUI.Button(Rect(190,20,50

,30),"Salir")){

43 enable = false;

44 }

45 GUI.DragWindow (Rect (0,0,10000 ,10000));

46 }

47 función OnMouseOver(){

48 transform.Rotate(0,Time.deltaTime*100,0,Space .World);

49 }

50 función OnMouseEnter(){

51 renderer.material.color = Color.blue;

52 }

53 función OnMouseExit(){

54 renderer.material.color = Color.amarillo;

55 }

Este es un script en Unity. Este script implementa hacer clic en un objeto y mostrar las propiedades del objeto.