Начали с другом делать игру на Unity, только на скриптах, то есть минимальное количество объектов на сцене, только камера и один объект, который как бы запускает скрипт Main, который должен запускать как бы все остальное что нужно и так далее.
Вообщем, суть вот в чем, я немного запутался с тем как правильно писать вообще игру. Приведу пример я создаю скрипт без MonoBehaviour примерно вот такой:
using UnityEditor;
using UnityEngine;
namespace Assets.Scripts
{
public class Animal
{
public GameObject go = new GameObject("", typeof(CircleCollider2D), typeof(Rigidbody2D), typeof(SpriteRenderer));
public Animal()
{
go.name = "Animal";
go.GetComponent<Rigidbody2D>().gravityScale = 0f;
go.transform.position = new Vector3(0, 0);
go.transform.rotation = new Quaternion(0, 0, 0, 0);
Debug.Log(go.name);
}
public class Cat : Animal
{
public GameObject go = new GameObject("", typeof(CircleCollider2D), typeof(Rigidbody2D), typeof(SpriteRenderer));
public Cat()
{
go.name = "Cat";
go.GetComponent<Rigidbody2D>().gravityScale = 0f;
go.transform.position = new Vector3(0, 0);
go.transform.rotation = new Quaternion(0, 0, 0, 0);
Debug.Log(go.name);
}
}
}
Стоит ли так вообще делать, потому что мне кажется, что что-то не так, хотя может быть и правильно. Просто я сужу исходя из того, что если я делаю класс наследуемый от MonoBehaviour, то потом нельзя просто создать экземпляр объекта через new(ну оно и понятно почему). Меня как бы не устраивает что я должен создавать заранее объект, цеплять на него скрипт, а потом он будет работать, когда я могу просто взять создать из конструктора объект, который будет иметь все нужные мне функции, заранее прописанные. Если кто меня понял, объясните пожалуйста, что с этим делать, как все мне это довести до логического завершения, что для чего. Вот например у меня еще есть скрипт с управление он уже идет от MonoBehaviour, я его цепляю например через AddComponent к кошке и ей управляю, но правильно ли это со стороны проектирования всей игры?
По факту очень удобно из рантайма все вызывать, есть некоторые проблемы с пониманием всего этого, если кто то что может подсказать с чем мы можем столкнуться во время разработки.