美文网首页
脚本 -- 旗帜飘动特效

脚本 -- 旗帜飘动特效

作者: Shawn_正品鞋铺 | 来源:发表于2017-08-08 16:38 被阅读150次
    using UnityEngine;
    using System.Collections;
    
    public class MyItem : MonoBehaviour
    {
        public float scale = .0f;
        public float speed = 1.0f;
        private Vector3[] baseHeight ;
        bool useOriginal  = false;
    
    private void Update()
    {
        Mesh mesh = GetComponent<MeshFilter>().mesh;
    
        if (baseHeight == null)
            baseHeight = mesh.vertices;
    
        // gameObject.Destroy(GetComponent(MeshCollider));
    
        var vertices = new Vector3[baseHeight.Length];
        for (var i = 0; i < vertices.Length; i++)
        {
            var vertex = baseHeight[i];
    
            if (useOriginal)
            {
                vertex.y += Mathf.Sin(Time.time * speed + baseHeight[i].x + baseHeight[i].y + baseHeight[i].z) * scale;
            }
            else
            {
                vertex.y += Mathf.Sin(Time.time * speed + baseHeight[i].x + baseHeight[i].y) * (scale * 0.5f) + Mathf.Sin(Time.time * speed + baseHeight[i].z + baseHeight[i].y) * (scale * 0.5f);
            }
    
            vertices[i] = vertex;
        }
        mesh.vertices = vertices;
        mesh.RecalculateNormals();
    
        Destroy(transform.GetComponent<MeshCollider>());
    
        MeshCollider collider = GetComponent<MeshCollider>();
        if (collider == null)
        {
            collider = gameObject.AddComponent<MeshCollider>();
            //collider.isTrigger = true;
        }
      }
    }
    

    将脚本放置在Plane上并附上需要的材质球,就能有你想要的效果。
    通过改变脚本的Speed和Scale的参数,来改变浮动的效果

    相关文章

      网友评论

          本文标题:脚本 -- 旗帜飘动特效

          本文链接:https://www.haomeiwen.com/subject/klatrxtx.html