сделать двусторонний самолет - PullRequest
0 голосов
/ 17 июня 2020

Я новичок в Unity, поэтому, возможно, мой вопрос слишком простой, но я не могу его решить. Я делаю что-то вроде дизайнера виртуальных квартир и использую плоскости для рисования стен, поэтому у меня есть начало X, конец X, начало Y, конец Y и высота. Чтобы увидеть обе стороны каждой стены, я решил сделать двойную стену и повернуть ее на 180 (возможно, это было неправильно). Но в каждой попытке были неудачи. Когда я использую простой plane.Rotate, он вращается, но меняет свое положение (например, центр находится где-то в нижней части плоскости). И когда я использую plane.RotateArount, положение правильное, а вращение - нет. Вот код, как я создаю плоскость

public static GameObject CreatePlane(float x1, float z1, float y1, float x2, float z2, float y2, Material material, bool rotate)
{
    var go = new GameObject("plane");
    var mf = go.AddComponent(typeof(MeshFilter)) as MeshFilter;
    var mr = go.AddComponent(typeof(MeshRenderer)) as MeshRenderer;
    var m = new Mesh();

    m.vertices = new[]
    {
        new Vector3(x1, y1, z1), 
        new Vector3(x1, y2, z1), 
        new Vector3(x2, y2, z2), 
        new Vector3(x2, y1, z2)

    };
    m.uv = new[]
    {
        new Vector2(1,1), 
        new Vector2(1,1), 
        new Vector2(1,1), 
        new Vector2(1,1), 
    };
    m.triangles = new[] {0, 1, 2, 0, 2, 3};
   if (mr != null) mr.material = material;
    if (mf != null) mf.mesh = m;
    m.RecalculateBounds();
    m.RecalculateNormals();
    go.AddComponent<BoxCollider>();
    return go;
}

и мои попытки поворота:

plane.AddComponent<RectTransform>().transform.rotation = Quaternion.Euler(0,0,180);
plane.transform.RotateAround(new Vector3(0,1,0),plane.transform.position,  180);
plane.transform.rotation = Quaternion.Euler(0,0,180);
plane.transform.localRotation = Quaternion.Euler(0,0,180);

Заранее спасибо

Также я заметил, что когда я вращаю эту плоскость в редакторе, координаты положения тоже меняются. Это нормально ..?

1 Ответ

0 голосов
/ 17 июня 2020

Почему бы не создать Куб и не присвоить ему масштаб по каждой оси. Было бы намного проще, и вы могли бы вращать их только по оси Y, и все готово. В конце просто разместите все кубики там, где вы хотите, и все готово. Есть ли еще одна причина, по которой вам нужны самолеты вместо кубиков?

...