Uniy5.4 实现动态3D图表效果(二):添加缓动动画

效果图(gif):

代码(需要插件DOTween):

using UnityEngine;
using System.Collections;
using DG.Tweening;
using UnityEngine.EventSystems;

public class Data : MonoBehaviour
{
    public int Time=5;
    private Vector3 vertice;//作为中间传值的顶点vector
    public  Vector3[] vertices;
    private Mesh mesh;
    [Range(0, 10)]
    public float value = 10;//设置高度值
    void Start()
    {
        vertices = GetComponent<MeshFilter>().mesh.vertices;//获取Gameobject meshfilter组件
        mesh = GetComponent<MeshFilter>().mesh;//获取meshfilter组件中mesh数组数据
    }

    void Update()
    {
        for (int i = 0; i < vertices.Length; i++)//遍历数组
        {

            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);//通过DoTween设置vertice值
                vertices[i]= vertice; //将vertice值传递给vertices[i]
            }
        }
        mesh.vertices = vertices;//刷新
    }
}

项目地址:https://github.com/baishuisr1/Unity-3D-Chart

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,264评论 3 283
  • 看着别人写出很好的文章,我也想写,并且一直不觉的如果我写了就不会没别人好,只是我总是懒得,写到这里就知道我很随意不...
    lvc阅读 221评论 0 0
  • 1、今天我很开心,自从上了灵性课程,一直变得越来越年轻,学了彼尚老师的课程之后一直在逆生长,现在怎么看都是大美女一...
    光之存有阅读 587评论 0 1
  • 美术课 清晨,我愉悦的走进美术教室,挂在墙上的一幅幅画与五彩缤纷的桌子,使我的心情变得更加美好。 ...
    雨彩虹阅读 212评论 0 0
  • 半生已过,走走停停,谁行谁不行?患难见真情!是蛇一身冷,是鱼一身腥;水深静无声,失利人无踪。蝙蝠再飞不是鸟,新鞋再...
    地坪施工陆建雄阅读 707评论 0 0