说明:我就是用到了,写了个简单的方法。本方法比较笨,但是很容易理解。可以在这个基础上优化。
一、获取Mesh顶点位置,并在顶点生成用于控制的小球
ChangMesh.cs(pointsFather是小球的父物体,随便找个空物体就行。)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ChangeMesh : MonoBehaviour
{
public GameObject pointsFather;
private Mesh mesh;
private GameObject newPoint;
private Vector3[] vertices;
// Start is called before the first frame update
void Start()
{
pointsFather.transform.position = this.transform.position;
mesh = this.GetComponent<MeshFilter>().mesh;
vertices = new Vector3[mesh.vertices.Length];
CreatMeshPoint();
}
private void CreatMeshPoint()
{
for (int i = 0; i < mesh.vertices.Length; i++)
{
vertices[i] = mesh.vertices[i];
}
for (int i = 0; i < mesh.vertices.Length; i++)
{
GameObject creatPoint = GameObject.CreatePrimitive(PrimitiveType.Sphere);
creatPoint.transform.localPosition = vertices[i];
creatPoint.transform.name = "EditorPoint" + i.ToString();
creatPoint.transform.localScale = new Vector3(0.01f, 0.01f, 0.01f);
creatPoint.transform.parent = pointsFather.transform;

本文介绍了一个在Unity中使用C#脚本控制Mesh顶点位置并生成编辑器控制点的方法,同时分享了一个自定义Shader实现颜色渐变效果的详细过程。通过创建控制点,用户可以直观地调整Mesh形状,而自定义Shader则根据顶点距离改变颜色,实现了独特的视觉效果。
最低0.47元/天 解锁文章
2502





