Всякие полезности на С#
//изменение значений 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);
}
}
}