Создайте 2D me sh с массивом sh с индексами в Годо с C# - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь сгенерировать arrayMe sh из скрипта. Если я просто положил вершины в массив. Работает нормально. Но как только я начинаю использовать индексы, он ничего не рендерит. Я пишу код в C#. Документация говорит, что этот вид кода должен работать (хотя документация для GDScript, в основном такая же). Что я делаю неправильно или чего мне не хватает?

 Vector2 center = new Vector2(30,30);
    Vector2 dir = new Vector2(10, 0);
    Array<Vector2> vectors = new Array<Vector2>();
    Array<int> indices = new Array<int>();

    for(int i = 0; i < 3; i++){
        vectors.Add(center + dir.Rotated(Mathf.Deg2Rad(60 * i)));
    }

    indices.Add(0);
    indices.Add(1);
    indices.Add(2);


    hexMesh = new ArrayMesh();

    Godot.Collections.Array arrays = new Godot.Collections.Array();
    arrays.Resize((int)ArrayMesh.ArrayType.Max);
    arrays[(int)ArrayMesh.ArrayType.Vertex] = vectors;
    arrays[(int)ArrayMesh.ArrayType.Index] = indices;

    hexMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays);

    this.Mesh = hexMesh;

РЕДАКТИРОВАТЬ:

Я нашел несколько сообщений об ошибках:

E 0:00:02: 0247 Условие 'p_arrays [ai] .get_type ()! = Variant :: POOL_INT_ARRAY' истинно. возвращено: ERR_INVALID_PARAMETER серверы / визуальный_сервер. cpp: 709 @ _surface_set_data (): 0 @ void Godot.NativeCalls.godot_icall_4_141 (IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32): 10 * M5: 10 * M5). Godot.ArrayMe sh .AddSurfaceFromArrays (Godot.Mesh + PrimitiveType, Godot.Collections.Array, Godot.Collections.Array, Int32) () HexMe sh .cs: 37 @ void HexMe sh ._ Ready () ( )

и

E 0: 00: 02: 0251 Недопустимый формат массива для серверов поверхности / visual_server. cpp: 1154 @ mesh_add_surface_from_arrays (): 0 @ void Godot.NativeCalls.godot_icall_4_141 (IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32) () ArrayMe sh .cs: 245 @ void Godot.ArrayMe sh .AddSurfaceFromArrays (Годот. , Godot.Collections.Array, Int32) () HexMe sh .cs: 37 @ void HexMe sh ._ Ready () ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...