Parametri se pot controla in editor atat timp cat sunt definiti ca variabile publice sau serializabile.
Se pot defini atat variabile simple cat si liste (array)
public float speed; public Sprite[] images; [SerializeField] private Text scoreText; [SerializeField] private GameObject[] enemyTypes;
Obiectele se pot instantia folosind functia
newobj = Instantiate(objTemplate) as ObjType; //from pregab - prefab must be in Resources folder newobj1 = Instantiate(Resources.Load("enemy")); // Instantiate the projectile at the position and rotation of this transform Rigidbody projectile; Rigidbody clone; clone = Instantiate(projectile, transform.position, transform.rotation); enemyOrc = Instantiate(Orc) as Enemy;
Transformarile unui obiect se pot accesa prin atributul `transform` (https://docs.unity3d.com/ScriptReference/Transform.html)
Vector3 objectPosition = GameObject.transform.position; GameObject.transform.position = new Vector3(posX, posY, posZ); transform.Translate(Vector3.up * Time.deltaTime, Space.World); transform.Rotate(Vector3.up * Time.deltaTime, Space.World);
Pentru a genera valori random puteti folosi clasa Random
Random.Range(-10.0f, 10.0f) Random.Range(0, 8);
Afisarea sau ascunderea unui obiect din scena se poate face prin functia de activare
myObject.SetActive(false); // ascunde myObject.SetActive(true); // arata
Similar, se pot controla componentele unui obiect
this.GetComponent<BoxCollider>().SetActive(false); // dezactivare this.GetComponent<SpriteRenderer>().sprite = image; //setarea unei imagini myObject.GetComponent<Text>().text = '123' //setarea unui text
De asemenea se pot accesa elemente copil sau parinte
childObject=parentObject.GetChild("child_name"); //setarea unei componente a elementului copil parentObject.GetChild("child_name").GetComponent<SpriteRenderer>().sprite = image;
Daca vreti veti sa introduceti asteptari in rularea unui script/functii puteti folosi corutine. Corutinele sunt folosite pentru a porni functii asincrone, care se pot intinde pe mai multe frame-uri, si in care se poate pune pauza (wait).
void Start() { StartCoroutine(Example()); } IEnumerator Example() { print(Time.time); yield return new WaitForSeconds(5); print(Time.time); }
Pentru a putea detecta daca un element a fost apasat, se poate folosi functia OnMouseDown
void OnMouseDown() { gameObject.SetActive(false); }
Realizarea unui joc 2D de memorare