Я пытаюсь создать полупроцедурно сгенерированную карту на Unity для разрабатываемой мной игры. В игре квадратные платформы появляются во всех направлениях, когда игрок движется к ним (север, юг, восток, запад, северо-запад, северо-восток, запад, юго-восток). Эти платформы содержат плоский ландшафт в качестве земли (так что я мог рисовать на них текстуры, а что нет). Чтобы придать игре немного разнообразия, я намерен выбрать случайное вращение этих платформ при их появлении (90, 180 и 270 градусов). Проблема в том, что по умолчанию точка поворота ландшафта не находится в центре, что приводит к действительно неудобным и, в данном случае, разрушительным результатам. Я попытался создать дочерний элемент для пустого игрового объекта с точкой поворота в центре, но получил те же результаты. Кто-нибудь знает способ побороть эту проблему? Я знаю, что это не совсем проблема кодирования, но, тем не менее, техническая. Я искал, и обычное решение - сделать его дочерним элементом пустого, но, как я уже сказал, в этом случае это не работает, если я чего-то не упускаю. Как всегда, заранее благодарим вас за терпение и внимание. Руи Пирес
Примечание: это мой сценарий вращения, на случай, если я смогу чего-то добиться, изменив его:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AutoRotate : MonoBehaviour
{
Quaternion rot1;
private int a;
private void Awake()
{
a = Random.Range(0, 4);
rot1 = transform.rotation;
}
// Start is called before the first frame update
void Start()
{
switch(a)
{
case 0: transform.rotation = rot1;
Debug.Log("case 0");
break;
case 1: rot1 = Quaternion.AngleAxis(90, Vector3.up);
transform.rotation = rot1;
Debug.Log("case 1");
break;
case 2: rot1 = Quaternion.AngleAxis(180, Vector3.up);
transform.rotation = rot1;
Debug.Log("case 2");
break;
case 3:
rot1 = Quaternion.AngleAxis(270, Vector3.up);
transform.rotation = rot1;
Debug.Log("case 3");
break;
}
}
}
Изменить: добавлено несколько изображений, чтобы лучше описать проблему.
Демонстрация непреднамеренного поворота ландшафта при применении 90deg к пустому gameobj