Змінні використовуються для зберігання значень різних типів даних.
int x = 5;
float y = 3.14f;
string name = "John";
int
— ціле число.float
— число з плаваючою комою.string
— рядок.Цей оператор дозволяє виконувати певний блок коду, якщо умова істинна.
if (x > 10)
{
Console.WriteLine("x більше 10");
}
else
{
Console.WriteLine("x менше або рівне 10");
}
Цикл for
дозволяє повторювати блок коду певну кількість разів.
for (int i = 0; i < 5; i++)
{
Console.WriteLine(i);
}
Цей цикл виведе числа від 0 до 4.
Цикл while
продовжує виконувати код, поки умова є істинною.
int counter = 0;
while (counter < 5)
{
Console.WriteLine(counter);
counter++;
}
Масиви дозволяють зберігати кілька значень одного типу.
int[] numbers = { 1, 2, 3, 4, 5 };
Console.WriteLine(numbers[2]); // Виведе 3
Методи використовуються для виконання певних операцій, які можуть бути викликані з іншого місця в програмі.
void Greet(string name)
{
Console.WriteLine($"Привіт, {name}!");
}
Greet("Микола");
Конструктор — це спеціальний метод, який викликається при створенні нового об’єкта класу.
class Person
{
public string Name;
public int Age;
public Person(string name, int age)
{
Name = name;
Age = age;
}
}
Person p = new Person("Андрій", 30);
Console.WriteLine(p.Name); // Виведе "Андрій"
Ці оператори використовуються для порівняння значень.
int a = 10;
int b = 20;
if (a == b)
{
Console.WriteLine("a дорівнює b");
}
else if (a > b)
{
Console.WriteLine("a більше b");
}
else
{
Console.WriteLine("a менше b");
}
Оператор switch
дозволяє вибирати блок коду залежно від значення змінної.
int day = 3;
switch (day)
{
case 1:
Console.WriteLine("Понеділок");
break;
case 2:
Console.WriteLine("Вівторок");
break;
case 3:
Console.WriteLine("Середа");
break;
default:
Console.WriteLine("Невірний день");
break;
}
Це дозволяє обробляти помилки в програмі без її аварійного завершення.
try
{
int result = 10 / 0; // Це спричинить помилку ділення на нуль
}
catch (DivideByZeroException)
{
Console.WriteLine("Не можна ділити на нуль!");
}
Ось 10 простих конструкцій програмування для Unity на C# з поясненнями, які допоможуть вам почати роботу в цьому середовищі:
Всі скрипти в Unity зазвичай успадковуються від класу MonoBehaviour
. Це дозволяє використовувати спеціальні методи Unity для керування поведінкою об’єкта.
using UnityEngine;
public class MyScript : MonoBehaviour
{
void Start()
{
// Цей метод викликається один раз при запуску гри
Debug.Log("Гра почалася!");
}
void Update()
{
// Цей метод викликається кожен кадр
transform.Rotate(0, 1, 0);
}
}
Start()
викликається один раз на початку.Update()
викликається кожен кадр.Ви можете змінювати позицію об’єкта в світі за допомогою transform
.
using UnityEngine;
public class MoveObject : MonoBehaviour
{
void Update()
{
// Переміщаємо об'єкт вправо по осі X
transform.Translate(Vector3.right * Time.deltaTime);
}
}
Time.deltaTime
використовується для того, щоб об’єкт рухався з однаковою швидкістю незалежно від частоти кадрів.Якщо об’єкт має фізику, ви можете використовувати компонент Rigidbody
для застосування сил або руху.
using UnityEngine;
public class AddForce : MonoBehaviour
{
Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rb.AddForce(Vector3.up * 5, ForceMode.Impulse);
}
}
}
AddForce
додає силу до об’єкта, викликаючи рух.Unity надає потужний інструмент для обробки вводу з клавіатури, миші чи геймпада.
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
void Update()
{
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
transform.Translate(new Vector3(horizontal, 0, vertical) * Time.deltaTime);
}
}
Input.GetAxis
дозволяє отримати введення по осях для руху (стрілки або WASD).Unity дозволяє визначити поведінку об’єктів при зіткненнях за допомогою методів OnCollisionEnter
, OnCollisionStay
, OnCollisionExit
.
using UnityEngine;
public class CollisionExample : MonoBehaviour
{
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Player"))
{
Debug.Log("Сталося зіткнення з гравцем!");
}
}
}
OnCollisionEnter
викликається, коли відбувається перше зіткнення.В Unity можна призначити тег об’єкту і використовувати його для порівняння.
using UnityEngine;
public class CheckTag : MonoBehaviour
{
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Enemy"))
{
Debug.Log("Ви зіткнулися з ворогом!");
}
}
}
CompareTag
дозволяє перевіряти, чи має об’єкт певний тег.Анімації можна керувати через компонент Animator
.
using UnityEngine;
public class AnimationControl : MonoBehaviour
{
Animator anim;
void Start()
{
anim = GetComponent<Animator>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.W))
{
anim.SetTrigger("Walk");
}
}
}
anim.SetTrigger("Walk")
активує анімацію ходьби, якщо вона задана в Animator.Для перемикання між сценами в Unity використовується клас SceneManager
.
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneSwitcher : MonoBehaviour
{
void Update()
{
if (Input.GetKeyDown(KeyCode.Return))
{
SceneManager.LoadScene("NextScene");
}
}
}
SceneManager.LoadScene
завантажує нову сцену.В Unity ви можете змінювати положення камери для створення ефектів або відстеження об’єктів.
using UnityEngine;
public class CameraFollow : MonoBehaviour
{
public Transform player;
void Update()
{
transform.position = new Vector3(player.position.x, transform.position.y, player.position.z - 10);
}
}
Щоб створити об’єкт в грі, можна використати метод Instantiate
.
using UnityEngine;
public class ObjectSpawner : MonoBehaviour
{
public GameObject prefab;
void Start()
{
Instantiate(prefab, new Vector3(0, 1, 0), Quaternion.identity);
}
}
Instantiate
створює новий екземпляр об’єкта з префабом.