Программирование для дополнительной и виртуальной реальности - страница 79

Шрифт
Интервал



Программирование поведения объектов: скрипты, компоненты и события


Создание скриптов на языке программирования C# для управления объектами

Создание скриптов на языке программирования C# для управления объектами в Unity дает возможность добавлять интерактивность и функциональность к вашим объектам и сценам. Рассмотрим примеры различных сценариев, которые можно реализовать с помощью скриптов на C#:

Движение объектов:

```csharp

using UnityEngine;

public class MovementScript : MonoBehaviour

{

public float speed = 5f;

void Update()

{

float moveHorizontal = Input.GetAxis("Horizontal");

float moveVertical = Input.GetAxis("Vertical");

Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);

transform.Translate(movement * speed * Time.deltaTime);

}

}

```

2. Вращение объектов:

```csharp

using UnityEngine;

public class RotationScript : MonoBehaviour

{

public float rotationSpeed = 100f;

void Update()

{

float rotateHorizontal = Input.GetAxis("Horizontal");

float rotateVertical = Input.GetAxis("Vertical");

transform.Rotate(Vector3.up, rotateHorizontal * rotationSpeed * Time.deltaTime);

transform.Rotate(Vector3.right, rotateVertical * rotationSpeed * Time.deltaTime);

}

}

```

3. Изменение размера объектов:

```csharp

using UnityEngine;

public class ScaleScript : MonoBehaviour

{

public float scaleSpeed = 1f;

void Update()

{

float scaleInput = Input.GetAxis("Vertical");

Vector3 newScale = transform.localScale + Vector3.one * scaleInput * scaleSpeed * Time.deltaTime;

transform.localScale = newScale;

}

}

```

4. Активация и деактивация объектов:

```csharp

using UnityEngine;

public class ActivationScript : MonoBehaviour

{

public GameObject targetObject;

void Update()

{

if (Input.GetKeyDown(KeyCode.Space))

{

targetObject.SetActive(!targetObject.activeSelf);

}

}

}

```

5. Интеракция с объектами при столкновении:

```csharp

using UnityEngine;

public class CollisionScript : MonoBehaviour

{

void OnCollisionEnter(Collision collision)

{

if (collision.gameObject.CompareTag("Player"))

{

Debug.Log("Player collided with " + gameObject.name);

}

}

}

```

Примечание:

– Создайте новый скрипт, выбрав "Create" -> "C# Script" в Unity.

– Прикрепите скрипт к нужному объекту, перетащив его на объект в панели "Inspector".

– Отредактируйте скрипт в вашей любимой среде разработки C# и сохраните изменения.

– Unity автоматически скомпилирует скрипт и сделает его доступным для использования в вашем проекте.