代碼(需要插件DOTween):
using UnityEngine;
using System.Collections;
using DG.Tweening;
using UnityEngine.EventSystems;
public class Data : MonoBehaviour
{
public int Time=5;
private Vector3 vertice;//作為中間傳值的頂點(diǎn)vector
public Vector3[] vertices;
private Mesh mesh;
[Range(0, 10)]
public float value = 10;//設(shè)置高度值
void Start()
{
vertices = GetComponent<MeshFilter>().mesh.vertices;//獲取Gameobject meshfilter組件
mesh = GetComponent<MeshFilter>().mesh;//獲取meshfilter組件中mesh數(shù)組數(shù)據(jù)
}
void Update()
{
for (int i = 0; i < vertices.Length; i++)//遍歷數(shù)組
{
if (vertices[i].y >= 0f)//判斷mesh是否為頂部
{
vertice.x = vertices[i].x;
vertice.z = vertices[i].z;
DOTween.To(() => vertice, x => vertice = x, new Vector3(vertice.x, value, vertice.y), Time);//通過(guò)DoTween設(shè)置vertice值
vertices[i]= vertice; //將vertice值傳遞給vertices[i]
}
}
mesh.vertices = vertices;//刷新
}
}
項(xiàng)目地址:https://github.com/baishuisr1/Unity-3D-Chart