主场景
创建一个平面(是单面显示的 把它对着摄像机)旋转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合成的过程。