Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于与点的距离为网格顶点着色_C#_Unity3d - Fatal编程技术网

C# 基于与点的距离为网格顶点着色

C# 基于与点的距离为网格顶点着色,c#,unity3d,C#,Unity3d,我有一个碰撞检测模拟,想让碰撞发生的地方变得明显。因为我有复合碰撞器,所以我只想为碰撞网格的顶点着色,这些顶点与碰撞在一定距离内。我一直在考虑一个内部有约束光源的球体,但那是不可能的。你的问题到底是什么还不清楚 我假设您已经计算出了碰撞和距离部分,但是您希望以某种方式为顶点指定颜色吗?如果是这样的话,您可以使用Unity的Color.Lerp(startColor、endColor、normalizedDistance)其中normalizedDistance=currentDistanceFr

我有一个碰撞检测模拟,想让碰撞发生的地方变得明显。因为我有复合碰撞器,所以我只想为碰撞网格的顶点着色,这些顶点与碰撞在一定距离内。我一直在考虑一个内部有约束光源的球体,但那是不可能的。

你的问题到底是什么还不清楚

我假设您已经计算出了碰撞和距离部分,但是您希望以某种方式为顶点指定颜色吗?如果是这样的话,您可以使用Unity的
Color.Lerp(startColor、endColor、normalizedDistance)
其中
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;
Mesh-Mesh=GetComponent().Mesh;
Vector3[]顶点=网格顶点;
颜色[]颜色=新颜色[顶点.长度];
对于(int i=0;i
您考虑过简单的像素着色器吗?基于到恒定点的距离计算颜色应该非常简单。