Ну давай на конкретных примерах:
void OnMouseUp()
{
if(door_handle) door_handle.transform.localRotation = handle_start_rot;
}
Вот тут у тебя используется handle_start_rot, но при этом у тебя нет полей с таким именем. Что ты на самом деле хотел использовать?
Тут либо опечатка, либо ты забыл поле добавить, либо хотел использовать что-то из другого класса, верно?
Далее:
if(door_axis = door_axis_ENUM.X) // 85
{
float posX = Mathf.MoveTowards(transform.localPosition.x, start_dist_or_angle, open_speed * Time.deltaTime);
transform.localPosition = new Vector3(posX, transform.localPosition.y, transform.localPosition.z);
if(transform.localPosition.x == start_dist_or_angle + open_dist_or_angle) Stop_open_close();
}
Тут очевидно, что ошибка в том что у тебя один знак равно, а должно быть два, тк ты явно хотел сделать сравнение, а не присваивание, по аналогии с соседними ветками if-else
Далее:
else if(door_axis = door_axis_ENUM.Z)
{
float angleZ = Mathf.MoveTowardsAngle(transform.localEulerAngles.z, start_dist_or_angle + open_dist_or_angle, open_speed * Time.deltaTime);
transform.localEulerAngles = new Vector3(0, 0, angleZ);
if(transform.localEulerAngles.z == start_dist_or_angle + open_dist_or_angle) Stop_open_close();
}
То же самое.
Что какой из этих пунктов был тебе не понятен, когда ты перечитывал код и почему?