unity3d 纹理动画
不知道大家有没有玩过赛车游戏
赛车游戏的跑道有路标,如下图
玩过赛车游戏的都知道,大多数赛车游戏的路标是会动的,如上图,它会从右往左运动
不会发动态图,大家脑补一下吧
没有玩过赛车游戏的也不要紧,大家见过游戏中的瀑布或者湖面吗?如下图:高山流水
当然,我这个贴图的效果不是很好,不过我这里要说的是原理,不妨碍,我们继续
图中的瀑布从上往下流动
我们都知道,如果用粒子的话,有几百个瀑布,在手机上肯定是非常卡的
差一点的手机说不定游戏刚打开就未响应了
除非要求是非常逼真的那种水才用粒子系统,能不用尽量不用
用纹理动画的话虽然达不到粒子那么逼真,但是也是一种不错的解决方案
纹理动画耗费资源还是粒子动画耗费资源呢?我们一探究竟
小二,上图
好勒客官,马上来
这是瀑布的材质球,我们手动修改OffsetX
按每次+0.1这样修改:0.1,0.2,0.3,0.4....
我们会发现,每修改一次材质球就会相应的变动
现在我们归零,修改一下OffsetY,依旧和修改X一样的方法
我们会发现材质球也会有相应的变动,但是方向不一样
如果只观察材质球感觉不容易看出来,那就把材质球挂到物体上,这样看的清楚一些
好了,我们知道如果让材质球动起来了,修改offset即可,那么我们就开始敲代码吧
创建一个 TextureAnimation.cs
定义一个变量:public float XSpeed = 0.1f;//X轴移动速度
然后有了下面的代码
public float XSpeed = 0.1f;//X轴移动速度 void FixedUpdate()
{
renderer.material.mainTextureOffset = new Vector2(Time.time * XSpeed, renderer.material.mainTextureOffset.y);
}
我们挂到瀑布上,然后运行,我们发现瀑布动起来了,但是似乎移动方向和速度不对劲
没关系,我们刚才修改的是X轴,我们在加上Y轴和移动速度不就行了?
依法炮制得出下面的完整代码:
using UnityEngine;
using System.Collections; /// 纹理动画 <summary>
/// 纹理动画
/// </summary>
public class TextureAnimation : MonoBehaviour
{
public bool MoveX = false;//是否移动X
public bool ToUp = false;//往上移动
public float XSpeed = 0.1f;//X轴移动速度
private float offsetX = ; public bool MoveY = false;//是否移动Y
public bool ToLeft = false;//往左移动
public float YSpeed = 0.1f;//Y轴移动速度
private float offsetY = ; void FixedUpdate()
{
if (MoveX)
{
offsetX = Time.time * XSpeed;
if (ToUp) offsetX *= -;
} if (MoveY)
{
offsetY = Time.time * YSpeed;
if (ToLeft) offsetY *= -;
} renderer.material.mainTextureOffset = new Vector2(offsetX, offsetY);
}
}
我就不多解释了,房东一会儿过来收房租了
真烦,我都租了大半年了,想在续租一个月,因为还有一个月我才上班
原来房租是850一个月,现在居然想收我900一个月
原因是我只续租一个月
我教了一千块押金,他怕我跑了不给水电费,非要我在给一千块
我让他来收电费他也不来,说太冷了。。。。
什么人啊这是。。。
不说了,我先闪了
本文链接:http://www.cnblogs.com/shenggege/p/4264463.html
unity3d 纹理动画的更多相关文章
- Unity3D 骨骼动画原理学习笔记
最近研究了一下游戏中模型的骨骼动画的原理,做一个学习笔记,便于大家共同学习探讨. ps:最近改bug改的要死要活,博客写的吭哧吭哧的~ 首先列出学习参考的前人的文章,本文较多的参考了其中的表述: 1. ...
- Unity3d Mecanim动画系统Animator学习笔记
1. unity3d Mecanim学习 Unity3d新版动画系统网上的介绍很多,但多是流水笔记,外人很难看明白,后来我 终于找到介绍的比较明白的两个作者,特别感谢.一个是58开发网的乐天老师,课 ...
- 浅谈Unity3D 骨骼动画
转载请标明出处http://www.cnblogs.com/zblade/ 最近研究了一下游戏中模型的骨骼动画的原理,做一个学习笔记,便于大家共同学习探讨. ps:最近改bug改的要死要活,博客写的吭 ...
- Unity3D Mecanim 动画系统骨骼动画问题解决方法
http://7dot9.com/2014/08/16/unity3d-mecanim%E5%8A%A8%E7%94%BB%E7%B3%BB%E7%BB%9F%E9%AA%A8%E9%AA%BC%E5 ...
- (转)Unity3D - 动作动画忽略timeScale
转自:http://blog.csdn.net/ynnmnm/article/details/46866347 最近在调战斗时的动画与特效,Unity3D对加/减速提供了Time.timeScale支 ...
- Unity3D - 动作动画忽略timeScale
http://blog.csdn.net/ynnmnm/article/details/46866347 最近在调战斗时的动画与特效,Unity3D对加/减速提供了Time.timeScale支持.但 ...
- Processing 网格(棋盘格)无限偏移纹理动画
过火 再度出击!这次我们要玩得更火一点---把静帧变动画.没错,将棋盘格动起来!看一下效果: 这是一个经典的无限偏移动画,在很多2d横版射击游戏中都会采用的技术.如何在Processing中实现,有两 ...
- three.js 纹理动画实现
需求: 1.使用一张长图.分别播放这张长图的不同位置 来达到动态内容的目的 解决方案: 1.纹理创建并指定重复方向:this.texture.wrapS = this.texture.wrapT = ...
- Unity3D骨骼动画的分解(CleanData.Ani详解)
CleanData是什么 CleanData以前没有特定的名字,(在easydown这个开源项目中,作为一个GameObjParser模块存在).在某三国项目中,我们使用GameObjParser将N ...
随机推荐
- java打字游戏
小记:老早之前写的程序,今天发现之前在 csdn上写的东西的图片不显示了,搞得人好郁闷,所以把之前零星的几篇文章搬个家 游戏运行截图: 字母实体类 package com.git.game; impo ...
- ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用
作者:wainiwann 出处:http://www.cnblogs.com/wainiwann/ 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...
- C# url信息获取
假设当前页完整地址是:http://www.360jht.com/game/bbb.aspx?id=5&name=kelli "http://"是协议名 "www ...
- linux 打包压缩工具
以.gz结尾 gzip 压缩工具压缩的文件gzip+文件名[root@test ~]# gzip 2.txt[root@test ~]# ls2.txt.gz testgzip -d +压缩包[roo ...
- SSH applicationContext.xml文件配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- uva 725 division(水题)——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABVMAAAOHCAIAAAClwESxAAAgAElEQVR4nOydybGturJFcQEPfgQu4A
- 【OpenGL】交互式三次 Bezier 曲线
1. 来源 三次贝塞尔曲线就是依据四个位置任意的点坐标绘制出的一条光滑曲线 2. 公式 3. 实现 #include <iostream> #include <math.h> ...
- listview中OnItemClick方法各个参数的作用
OnItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) 1.arg0,arg2 m_listview.setOnI ...
- 边工作边刷题:70天一遍leetcode: day 78
Graph Valid Tree 要点:本身题不难,关键是这题涉及几道关联题目,要清楚之间的差别和关联才能解类似题:isTree就比isCycle多了检查连通性,所以这一系列题从结构上分以下三部分 g ...
- 给定一个整数N,找出一个比N大且最接近N,但二进制权值与该整数相同 的数
1,问题描述 给定一个整数N,该整数的二进制权值定义如下:将该整数N转化成二进制表示法,其中 1 的个数即为它的二进制权值. 比如:十进制数1717 的二进制表示为:0000 0110 1011 01 ...