Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class MapIcon : MonoBehaviour {
Vector3 plPosition;
bool created;
void Start () {
Network.InitializeServer(2,25000);
created=false;
}
// Update is called once per frame
void Update () {
plPosition=transform.position;
networkView.RPC("Icon", RPCMode.AllBuffered, plPosition,created);
created=true;
}
[RPC]
public void Icon(Vector3 plPosition,bool created)
{
if(!created)
{
GameObject m=Resources.Load("Iconn")as GameObject;
GameObject icon=Network.Instantiate(m,Vector3.zero,new Quaternion(0,0,0,0),0)as GameObject;
GUITexture text=icon.GetComponent<GUITexture>();
text.color=Color.red;
text.texture=Resources.Load("Icon",typeof(Texture2D)) as Texture2D;
text.transform.localScale=Vector3.zero;
text.transform.position=new Vector3(0,0,0.1f);
}
text.pixelInset=new Rect(plPosition.x/2000f*150f-3f,(plPosition.z/2000f*150f-Screen.height+3f)*(-1),7f,7f); //ругается
}
}
using System.Collections;
public class MapIcon : MonoBehaviour {
Vector3 plPosition;
bool created;
void Start () {
Network.InitializeServer(2,25000);
created=false;
}
// Update is called once per frame
void Update () {
plPosition=transform.position;
networkView.RPC("Icon", RPCMode.AllBuffered, plPosition,created);
created=true;
}
[RPC]
public void Icon(Vector3 plPosition,bool created)
{
if(!created)
{
GameObject m=Resources.Load("Iconn")as GameObject;
GameObject icon=Network.Instantiate(m,Vector3.zero,new Quaternion(0,0,0,0),0)as GameObject;
GUITexture text=icon.GetComponent<GUITexture>();
text.color=Color.red;
text.texture=Resources.Load("Icon",typeof(Texture2D)) as Texture2D;
text.transform.localScale=Vector3.zero;
text.transform.position=new Vector3(0,0,0.1f);
}
text.pixelInset=new Rect(plPosition.x/2000f*150f-3f,(plPosition.z/2000f*150f-Screen.height+3f)*(-1),7f,7f); //ругается
}
}
Скрипт привязан к объекту на сцене, он отсылает информацию о своей позиции на сервер, тот создает объект через Network.Instantiate, получается текстурка. Если объект уже создан, то объект и текстурка не создаются заново, текстурка лишь меняет свою позицию. Проблема в том, что компилятор ругается на строку text.pixelInset=new Rect(plPosition.x/2000f*150f-3f,(plPosition.z/2000f*150f-Screen.height+3f)*(-1),7f,7f);
A local variable `text' cannot be used before it is declared. Понятно, что это значит, но как сделать нормально? Мне нужно. чтобы все создавалось только 1 раз, чтобы ресурсов много не жрало)