根据与点的距离为网格顶点着色

时间:2021-04-22 08:45:18

标签: c# unity3d

我有一个碰撞检测模拟,并希望让碰撞发生的位置一目了然。由于我有复合碰撞器,我只想为碰撞网格的顶点着色,这些顶点距离碰撞一定距离内。我一直在考虑内部有约束光源的球体,但那是不可能的。

1 个答案:

答案 0 :(得分:0)

目前还不清楚您的问题究竟是什么。

我假设您已经确定了碰撞和距离部分,但是您想以某种方式为顶点分配颜色?如果是这样,您可以使用 Unity 的 Color.Lerp(startColor, endColor, normalizedDistance) where normalizedDistance = currentDistanceFromPoint/maximumDistanceFromPoint 找到该点并像这样分配它:

        Mesh mesh = GetComponent<MeshFilter>().mesh;
        Vector3[] vertices = mesh.vertices;
        Color[] colors = new Color[vertices.Length];
        for (int i = 0; i < vertices.Length; i++)
            colors[i] = Color.Lerp(Color.red, Color.green, normalizedDistance);
        mesh.colors = colors;