Не выделяется треугольник в меше в Unity

225
23 марта 2018, 10:06
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour
{
public Camera cam;
void Start()
{
    cam = GetComponent<Camera>();
}
void Update()
{
    RaycastHit hit;
    if (!Physics.Raycast(cam.ScreenPointToRay(Input.mousePosition), out hit))
        return;
    MeshCollider meshCollider = hit.collider as MeshCollider;
    if (meshCollider == null || meshCollider.sharedMesh == null)
        return;
    Mesh mesh = meshCollider.sharedMesh;
    Vector3[] vertices = mesh.vertices;
    int[] triangles = mesh.triangles;
    Vector3 p0 = vertices[triangles[hit.triangleIndex * 3 + 0]];
    Vector3 p1 = vertices[triangles[hit.triangleIndex * 3 + 1]];
    Vector3 p2 = vertices[triangles[hit.triangleIndex * 3 + 2]];
    Transform hitTransform = hit.collider.transform;
    p0 = hitTransform.TransformPoint(p0);
    p1 = hitTransform.TransformPoint(p1);
    p2 = hitTransform.TransformPoint(p2);
    Debug.DrawLine(p0, p1);
    Debug.DrawLine(p1, p2);
    Debug.DrawLine(p2, p0);
}
}

Код с официального сайта Unity, с минимальными изменениями под себя. Почему треугольники меша не выделяются, как должно?

Answer 1

Все работает.

Во-первых, скрипт должен висеть там, где камера.

Во-вторых, Debug.DrawLine рисует только в Unity Editor

В-третьих, Debug.DrawLine не отображается в Game окне, если там не нажать кнопку Gizmos(в верху справа). По дефолту только в Scene окне.

В-четвертых, рисуются линии белого цвета, и если модель белая, то не увидите.

Варианты:

  • Debug.DrawLine(p0, p1, Color.red); добавить цвет линиям

  • Можно в окне Scene поставить режим Wireframe( в верху слева)

READ ALSO
Развертывание окна при запуске&hellip; (Дизайн WPF)

Развертывание окна при запуске… (Дизайн WPF)

Доброе время суток, уважаемые пользователи, прошу помочь! Как на C# WPF на EventTrigger сделать что бы, не кнопка так разворачивалась, а окно сама? Я хочу...

233
Как сделать поиск в Entity Framework

Как сделать поиск в Entity Framework

Привет!Мне нужно сделать выборку в таблице Recipe данных которые были введены в текстбокс inputProduct и с тех рецептов которые были выбраны взять...

246
Visual studio 2017

Visual studio 2017

Так как не имею опыт работы в VS, при установке задался вопросом: Какие основные компоненты требуется для разработки на языке C#? Буду благодарен,...

159
Ошибка при удалении ZIP после работы с ним

Ошибка при удалении ZIP после работы с ним

Использую библиотеку DotNetZipdll для работы с ZIP

184