Отчет по лабораторной работе #1 выполнил(:
- Попович Иван Алексеевич
- РИ-300022 Отметка о выполнении заданий (заполняется студентом):
| Задание | Выполнение | Баллы |
|---|---|---|
| Задание 1 | * | 60 |
| Задание 2 | * | 20 |
| Задание 3 | # | 20 |
знак "*" - задание выполнено; знак "#" - задание не выполнено;
Структура отчета
- Данные о работе: название работы, фио, группа, выполненные задания.
- Цель работы.
- Задание 1.
- Код реализации выполнения задания. Визуализация результатов выполнения (если применимо).
- Задание 2.
- Код реализации выполнения задания. Визуализация результатов выполнения (если применимо).
- Задание 3.
- Код реализации выполнения задания. Визуализация результатов выполнения (если применимо).
- Выводы.
- ✨Magic ✨
Ознакомиться с основными функциями Unity и взаимодействием с объектами внутри редактора.
Ход работы:
- Создать новый проект из шаблона 3D – Core;
- Проверить, что настроена интеграция редактора Unity и Visual Studio Code (пункты 8-10 введения);
- Создать объект Plane;
- Создать объект Cube;
- Создать объект Sphere;
- Установить компонент Sphere Collider для объекта Sphere;
- Настроить Sphere Collider в роли триггера;
- Объект куб перекрасить в красный цвет;
- Добавить кубу симуляцию физики, при это куб не должен проваливаться под Plane;
- Написать скрипт, который будет выводить в консоль сообщение о том, что объект Sphere столкнулся с объектом Cube;
- При столкновении Cube должен менять свой цвет на зелёный, а при завершении столкновения обратно на красный.
Код скрипта, который отвечает за соприкосновения сферы и куба, конкретнее отвечает за то, чтобы объект "куб" перекрашивался при активации и деактивации триггера. Также код выводит сообщения в консоль.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CheckCollider : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void OnTriggerEnter(Collider other) {
Debug.Log(other.gameObject.name);
other.GetComponent<Renderer>().material.SetColor("_Color", Color.green);
}
private void OnTriggerExit(Collider other) {
Debug.Log("Завершил столкновение с " + other.gameObject.name);
other.GetComponent<Renderer>().material.SetColor("_Color", Color.red);
}
}
- Что произойдёт с координатами объекта, если он перестанет быть дочерним?
- Создайте три различных примера работы компонента RigidBody?
Ответ на вопрос 1: Координаты дочернего объекта берут 0 в точке родительского. Если просто перетащить объект и сделать его родительским, то его координаты сменят числовое значение относительно всей сцены, но объект положения не поменяет
Ответ на вопрос 2: Поэксперементировав над разными параметрами RigidBody, понял, что поле с параметром UseGravity отвечает за гравитацию объеекта. IsKinematic при включении отвечает за то, что на объект больше не действует никакая физиак, так например, если его толкнули, или заставили вращаться, то действие сли просто прекратится Так, поскольку надо было выполнить три пункта, то я ещё настраивал вес объекта. Как оказалось, этот параметр влияет на импульс объекта при соприкосновенни. Так, если вес объекта 0, то после удара о другой объект, на этот друго объект не будет действовать никакая сила.
Во время выполнения этой работы, я научился самым азам обращения с Unity. Создавать объекты, менять их настройку. Также узнал за что именно отвечают некоторые пункты в его настройке. Также научился базовой работе с триггерами и создавать скрипты.
BigDigital Team: Denisov | Fadeev | Panov