雷潮教育吧 关注:7贴子:366
  • 5回复贴,共1

#技术分享#Shader红旗飘动特效

只看楼主收藏回复

技术分享贴,求系统大大别删~


1楼2017-10-09 10:11回复
    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; }
    }
    }


    2楼2017-10-09 10:12
    回复
      2026-03-13 22:53:56
      广告
      不感兴趣
      开通SVIP免广告
      将脚本放置在Plane上并附上需要的材质球,就能有你想要的效果。
      通过改变脚本的Speed和Scale的参数,来改变浮动的效果


      3楼2017-10-09 10:13
      回复


        6楼2017-10-09 10:16
        回复
          你这是个毛shader啊,明明是个脚本


          IP属地:浙江7楼2017-11-01 00:14
          回复
            写的红旗飘扬的脚本


            8楼2017-11-01 16:41
            回复