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 ...
随机推荐
- HTTP 协议中的 Content-Encoding 和 Transfer-Encoding(内容编码和传输编码)
转自:http://network.51cto.com/art/201509/491335.htm Transfer-Encoding,是一个 HTTP 头部字段,字面意思是「传输编码」.实际上,HT ...
- 【linux】spinlock 的实现
一.什么是spinlock spinlock又称自旋锁,是实现保护共享资源而提出一种锁机制.自旋锁与互斥锁比较类似,都是为了解决对某项资源的互斥使用 无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一 ...
- 软件测试Lab2
1.本次上机实验任务:使用webDriver完后自动化测试 2.本次上机实验目的:掌握webDriver的用法和配置. 3.本次上机实验内容: 3.1Selenium的安装: 首先我们上Seleniu ...
- window10系统安装oracle11g时遇到INS-13001环境不满足最低要求
机器安装了window10系统,之前有次安装oracle11g是成功了.但是机器后来固态硬盘坏了,又坏了个后,还是win10系统安装oracle11g时,出现INS-13001环境不满足最低要求,郁闷 ...
- linux安装pylab
在linux下就是一句话 sudo apt-get install python-matplotlib 该工具包含了pylab, numpy,scipy和matplotlib四个工具包 对matplo ...
- js控制iframe跳转
网页:<iframe src="" id="iframe_a" name="iframe_a" style="width:1 ...
- 【iOS 初见】第一个简单的 iOS 应用
本实例来自 <iOS编程(第4版)>,介绍如何编写一个简单的 iOS 应用. 功能为:在视图中显示一个问题,用户点击视图下方的按钮,可以显示相应的答案,用户点击上方的按钮,则会显示一个新的 ...
- Axure学习笔记1--原型设计概述
Axure原型 1.原型的出现 -软件功能复杂,用户需求多 -挖掘用户的实际需求 -项目组之间降低沟通成本 2.类型: [草图原型]描述产品大概需求,记录瞬间灵感 [低保真原型]展示系统的大致结构和基 ...
- sqlite-jdbc jar包下载过程笔记
在网络上找一些开源的jar包和对应的源码时,官网上往往是最为安全,版本最新.但大部分的网站都为英文网站,有时候定位下载地址稍有困难,下面是网上找sqlite-jdbc jar包过程,记录一下,以供参考 ...
- Vector3.Dot 判断方位
判断方位 假设空间中有这几个坐标,判断一个物体在另一个物体的左边还是右边,前后还是后面 物体空间图 假如以C为中心,判断L是在它的左边还是右边 判断方法 using UnityEngine; usin ...