Unity 3D (языки С# и JS)

Всякие полезности на С#

//изменение значений position, rotation и scale в компоненте Transform

transform.position = new Vector3(значение по X, значение по Y, значение по Z);
transform.rotation = Quaternion.Euler(значение по X, значение по Y, значение по Z);
transform.localScale= new Vector3(значение по X, значение по Y, значение по Z);

// если, то (if else)

if(условие)                    //если
{
следствие 1;                   //то
}
else
{
следствие 2;                   //то
}

оператор switch

Оператор switch предоставляет более элегантный способ проверки переменной на равенство списку значений.

Каждое значение называется case(случай) и включенная переменная проверяется с каждым включенным случаем.

int num =3;
switch (num)
{
  case 1:
  Debug.Log("один");
  break;
  case 2:
  Debug.Log("два");
  break;
  case 3:
  Debug.Log("три");
  break;
}

//цикл foreach

Создаём список игровых объектов и выводим их имена в консоль

using UnityEngine;

public class PereborElements : MonoBehaviour
{
    public List<GameObject> Tables = new List<GameObject>();
    void Start()
    {   
        foreach (GameObject obj in Tables)
        {
           Debug.Log(obj);
        }
    }

// вызов метода скрипта из скрипта другого объекта

GameObject.Find("имя_объекта").GetComponent<имя_скрипта>().имя_метода();

//присваиваем переменной значение переменной из другого скрипта

 float MyFloat = AnotherGameObject.GetComponent<имя скрипта>().имя переменной;

//присваиваем рандомное значение переменной в диапазоне от 1 до 100

public class pp : MonoBehaviour
{ 
    public int aa; 
	void Start()
    {
int aa = Random.Range(1,100);
Debug.Log(aa);   
    }
}

//появление клона префаба на сцене в указанных координатах

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FIRE : MonoBehaviour
{
    public GameObject fire1; //объект, который будет появляться
    public Transform spawn1; //точка, в которой он будет появляться

    void Update()
    {
        if(Input.GetKeyDown(KeyCode.W))
        {
Instantiate(fire1, spawn1.position, spawn1.rotation); // команда
        }

    }
}

появление 20 клонов префаба со смещением позиции:


using UnityEngine;

public class otryad : MonoBehaviour
{
 public GameObject Kubik;
int sdwig;
void Start()
{ 
   for(int i = 0; i< 21; i++)
   {
 tp +=5;   
 GameObject Kubishka = (GameObject)Instantiate(Kubik);
 Kubishka.transform.position = new Vector3(tp, 0 , 0);
    }
   }
 }

//Уничтожение игрового объекта

Destroy(gameObject); // уничтожает данный объект со сцены

//Активация/деактивация игрового объекта

gameObject.SetActive(false); // выключает данный объект
gameObject.SetActive(true); // включает данный объект

Отключение компонента у скрипта:

DropNapitok.GetComponent<Dropdown>().enabled = false;

Прверка объекта на активность:

if (cat.activeInHierarchy == false) //если объект cat неактивен
{
.......
}

//Добавление новых компонентов и скриптов игровому объекту

gameObject.AddComponent<BoxCollider>(); // добавляет к данному объекту компонент BoxCollider
gameObject.AddComponent<Listener>(); // добавляет к данному объекту скрипт Listener

Деактивация компонента у объекта

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class KenAnim : MonoBehaviour
{
    Animator AnimO; // объявляем компонент
    void Start()
    {
        AnimO = GetComponent<Animator>(); // заполняем компонент начальными значениями
        AnimO.enabled = false; //деактивируем компонент;
    }  
 
}

//Переименование игрового объекта. Считывание имени объекта

gameObject.name = "ObjectNewName"; // меняем имя объекта
var objectName = gameObject.name; // считываем имя объекта

//Установить тэг игровому объекту, а также его считывание

gameObject.tag = "newTag"; // устанавливает тэг объекту
var objectTag = gameObject.tag; // считывает тэг объект

//Изменить цвет объекта

GetComponent<Renderer>().material.color = Color.red;

//Если требуется более точная настройка, то можно воспользоваться RGB (значения задаются в диапазоне от 0 до 255)

GetComponenent<Renderer>().material.color = new Color(156, 120, 18);

Рисуем Mesh

using UnityEngine;
using System.Collections;

public class meshh : MonoBehaviour {
    public Mesh mesh;
    public Material material;
  
    public void Update() 
    {
  
        Graphics.DrawMesh(mesh, Vector3.zero, Quaternion.identity, material, 0);
    }
}

Рисуем UI текстуры:

using UnityEngine;

public class Draw : MonoBehaviour
{
   public Texture picture;

    void OnGUI()
    {
        if (Event.current.type.Equals(EventType.Repaint))
        {
            Graphics.DrawTexture(new Rect(10, 10, 100, 100), picture);
        }
    }
}