首页 > 编程语言 > 详细

Unity3D练习 -- 捕鱼达人(2) -- 水波纹效果 -- 多张纹理图连续播放

时间:2020-05-23 18:21:23      阅读:69      评论:0      收藏:0      [点我收藏+]

1、新建Plane,重命名为WaterWave,移除本身自带的Collide组件,并调节其位置信息、大小信息使其在Canvas前显示在摄像机内;

2、新建材质球material,更改材质球的 Shader 属性 --  Particles -- Additive,此模式下采用“黑透白不透”原理(即纹理图的黑色区域透明显示,白色区域不透明显示),将材质球赋予WaterWave;

技术分享图片

 

 3、使用脚本来更改对象材质球的纹理贴图:

public class Ef_WaterWave : MonoBehaviour {

  public Texture[] textures; //创建一个数组,用于保存水波纹的纹理图
  private Material material; //获取当前对象的材质球
  private int index = 0; //获取当前对象的材质纹理


  void Start () {
    material = GetComponent<MeshRenderer>().material; //获取当前对象的材质球
    InvokeRepeating("ChangeTexture", 0, 0.1f);    //0S后以0.1f的间隔重复执行函数ChangeTexture()
  }

  void ChangeTexture () {
    material.mainTexture = textures[index]; //更改当前对象材质球的纹理图
    index = (index + 1) % textures.Length;
  }
}

将脚本赋予WaterWave,并将准备好的材质纹理图集赋予脚本中的Texture;

技术分享图片

 

【tip】延时函数

(1)InvokeRepeating(methodNamestring, timefloat, repeatRatefloat): void;

  methodName:方法名

  time:多少秒后执行
  repeatRate:重复执行间隔

(2)Invoke(methodName: string, time: float): void;

  methodName:方法名
  time:多少秒后执行

(3)IsInvoking()用来判断某方法是否被延时,即将执行

(4)CancelInvoke():取消该脚本上的所有延时方法

 

Unity3D练习 -- 捕鱼达人(2) -- 水波纹效果 -- 多张纹理图连续播放

原文:https://www.cnblogs.com/jiahao123/p/12943326.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!