Я хочу управлять этими настройками до добавления жесткого тела.
Вы не можете, потому что вы не можете, потому что вы не можете добавить существующий компонент в GameObject. Функция AddComponent
добавляет новый экземпляр Компонента в GameObject.
Обратите внимание, что функция AddComponent
добавляет компонент, а затем возвращает только что добавленный экземпляр в GameObject. Вы можете изменить тот компонент экземпляра, который он возвратил, и это то, что вы должны сделать.
Rigidbody с настройками по умолчанию:
public Rigidbody deafultSettings;
Добавьте компонент Rigidbody к вашей лестнице GameObject и верните добавленный компонент:
Rigidbody stairRb = stairs.AddComponent<Rigidbody>();
Теперь вы можете изменить возвращенный компонент или сделать функцию, чтобы упростить это для вас:
CopyRigidBodySettings(deafultSettings, stairRb);
Функция CopyRigidBodySettings
:
void CopyRigidBodySettings(Rigidbody destination, Rigidbody source)
{
destination.useGravity = source.useGravity;
destination.mass = source.mass;
destination.drag = source.drag;
destination.angularDrag = source.angularDrag;
}
Компоненты модифицируются после их добавления, а не перед их добавлением. Это не должно быть проблемой, но если вам это не нравится, используйте префаб. Фактически, это то, для чего созданы префабы, так что вы можете создать GameObject с настройками по умолчанию, а затем использовать их повторно. Создайте сборную из ваших лестниц с Rigidbody
, уже прикрепленными к ним, затем используйте функцию Instantiate
, чтобы создать сборную. Вы можете изменить префаб в редакторе или скрипте перед его созданием.