主场景
创建一个平面(是单面显示的 把它对着摄像机)旋转x-90 覆盖大小 去掉碰撞器 拖上材质资源
特效脚本
切换材质球图片 数组法 直接调主材质 数组索引取模轮回法来设置上限 InvokeRepeating代替update 每隔0.1f
主场景
创建一个平面(是单面显示的 把它对着摄像机)旋转x-90 覆盖大小 去掉碰撞器 拖上材质资源
特效脚本
切换材质球图片 数组法 直接调主材质 数组索引取模轮回法来设置上限 InvokeRepeating代替update 每隔0.1f
解决不来了
老师在吗
实例:unity延时方法Invoke和InvokeRepeating
Invoke(methodName: string, time: float): void;
methodName: 方法名
time:多少秒后执行
InvokeRepeating(methodName: string, time: float, repeatRate: float): void;
methodName: 方法名
time:多少秒后执行
repeatRate:重复执行间隔
还有两个重要的方法:
sInvoking:用来判断某方法是否被延时,即将执行
CancelInvoke:取消该脚本上的所有延时方法
把水波纹的碰撞框组件移除
建立水波纹数组
获取水波纹的材质球
获取材质球组件
plane 做水波纹
学到了,index = (index+1)%textures.Length这句很简洁,之前我都是if和else判断
循环取数,1到7,每次循环+1,超过7时重新变为1
int n;
InvokeReprating("OneToSeven",0,0.1f);
void OneToSeven()
{
n=(n+1)%7;
}
public class Ef_WaterWave : MonoBehaviour
{
public Texture[] textures;
private Material material;
void Start()
{
material = GetComponent<MeshRenderer>().material;
InvokeRepeating("ChangeTexture", 0, 0.1F);
}
void ChangeTexture()
{
material.mainTexture = textures[index];
index = (index + 1) % textures.Length;
}
}
//index 这段不存在,不能运行;
InvokeRepeating: 重复调用方法名为传进去字符串参数的方法,在指定的时间间隔后按一定的速率(秒)调用
一个meaterial 材质,本身就是一个图片+shader合成的过程。