我正在使用Shader.

然后在层次结构中我的对象我正在使用SuperSystem / Wireframe-Transparent . 结果是:

Shader

现在该对象是透明线框 . 这是问题所在,因为它也是透明的,我无法为它着色 .

我正在使用这个脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MeshGenerator : MonoBehaviour
{
    public GameObject meshPrefab;
    public Vector3[] newVertices;
    public Vector2[] newUV;
    public int[] newTriangles;

    private Mesh mesh;

    void Start()
    {
        Mesh meshprefab = meshPrefab.GetComponent<MeshFilter>().sharedMesh;
        newVertices = meshprefab.vertices;
        newUV = meshprefab.uv;
        newTriangles = meshprefab.triangles;


        mesh = new Mesh();
        mesh = gameObject.GetComponent<MeshFilter>().mesh;
        mesh.Clear();
        mesh.vertices = newVertices;//new Vector3[] { new Vector3(0, 0, 0), new Vector3(0, 0.25f, 0), new Vector3(0.25f, 0.25f, 0) };
        mesh.uv = newUV;//new Vector2[] { new Vector2(0, 0), new Vector2(0, 0.25f), new Vector2(0.25f, 0.25f) };
        mesh.triangles = newTriangles;//new int[] { 0, 1, 2 };
    }
}

如果我将脚本附加到透明线框的对象上,它将不会做任何事情,但如果我将脚本附加到带有standrad着色器的新游戏对象,它将创建新的网格 .

我的主要目标:

能够访问和更改透明线框对象的每个三角形 . 例如,在屏幕截图中使用线框时,将网格中的一个特定三角形用红色着色 .

但由于它是透明的,我使用预制网格来获取我的代码中的所有三角形uv法线但我想在层次结构Rock4A中使用线框(1)

例如,仅为3D线框中的这个特定三角形着色:我试图在绘画中为一个三角形着色,以显示我的意思 .

Example