首先,给出圣典的解释:

Material.mainTextureOffset 主纹理偏移量

var mainTextureOffset : Vector2

Description描述

The texture offset of the main texture.

主纹理中的纹理偏移量

The same as using GetTextureOffset or SetTextureOffset with "_MainTex" name.

这个与带有"_MainTex"名称的 GetTextureOffsetSetTextureOffset相同

参考:SetTextureOffset, GetTextureOffset.

 using UnityEngine;
using System.Collections; public class example : MonoBehaviour
{
public float scrollSpeed = 0.5F;
void Update()
{
float offset = - Time.time * scrollSpeed; //这里的Time.time和我例子中 Time.detalTime不一样 但这句话的意思是一样的 都是不断递减的一个数
renderer.material.mainTextureOffset = new Vector2(offset, );
}
}

从上面我们知道,TextureOffset是纹理偏移的意思,通过renderer.material.mainTextureOffset = new Vector2(offset, 0);函数实现Unity中物体材质的偏移,
通过这个函数 可以在游戏中实现背景循环滚动的效果(也可以通过两个相同的背景交替上下实现这个效果,这里不做细讲) 我们知道编程中一个函数体不变的函数,能影响输出结果
的就是函数的参数, 那么这个函数中的参数代表着什么呢?
笔者在Unity中进行试验:
float m_offset;     //物体材质的偏移量

float m_speed= 0.1f;     //物体材质偏移的速度

 void Update ()

{       

     m_offset =m_offset  -  m_speed * Time.deltaTime;    //这里物体材质的偏移量 就是 每帧的时间乘以自己定义的速度

     this.GetComponent<Renderer>().material.mainTextureOffset = new Vector2(, m_offset);    //通过这个函数实现物体材质的偏移和滚动

 }

!!!这里注意  材质偏移只有(x,y)两个参数 分别代表材质在横向和纵向的偏移!!!

在上述例子中,
1.我首先把 new Vector2(0, m_offset)中的0改为10000,编译后在Unity中调试 发现物体材质的偏移速度并没有发生改变
2.然后我又把 new Vector2(0, m_offset)中的0和m_offset进行了互换,发现由上下偏移变成了左右偏移,说明常量没有效果 一个每帧都改变的量才能实现函数的偏移
3.我又把 1.步骤中加了一步:把m_offset前面乘以10000,这样就变成了 new Vector2(10000, 10000*m_offset); 然后调试发现 物体材质偏移左右依然岿然不动 然后上下快了好多好多,
这说明函数中的"10000"是有效果的,而且只有在参数是变量的基础上才会发生作用,而且10000变成100000000的话 物体材质偏移的速度会更快 这样,我们对renderer.material.mainTextureOffset = new Vector2(offset, 0);就有一个全面深刻的了解了,以后用到也会更加灵活了.
     

Unity3D 纹理偏移(TextureOffset)浅析的更多相关文章

  1. unity3d 纹理动画

    不知道大家有没有玩过赛车游戏 赛车游戏的跑道有路标,如下图 玩过赛车游戏的都知道,大多数赛车游戏的路标是会动的,如上图,它会从右往左运动 不会发动态图,大家脑补一下吧 没有玩过赛车游戏的也不要紧,大家 ...

  2. [原]unity3d 纹理旋转

    纹理旋转实现思路:纹理坐标*平移矩阵*旋转矩阵(类似顶点旋转): 矩阵一般要求中心点为(0,0) 而纹理中心点默认(0.5,0.5);所以先得平移到(0,0):可以考虑乘以平移矩阵[1,0,0,0,1 ...

  3. Unity3D~纹理格式

    因为之前自己从来没有好好看过这部分,一直都是用的DXT压缩图片,结果发现原来ios是不支持DXT的, 还不知道我项目那么卡是不是这部分引起的, 但愿是~这样应该就可以解决游戏在ios上只有6.8帧的问 ...

  4. Unity3d纹理压缩格式表

  5. Unity3D ShaderLab 模拟纹理运动

    Unity3D ShaderLab 模拟纹理运动 这一篇,我们要说到着色器上的uv贴图的滚动效果,这样的场景可以用在河流,瀑布,熔岩等效果.算是创建纹理动画的基础技术之一. 所以 准备一个新的着色器文 ...

  6. ThreeJS模拟人沿着路径运动-路径箭头使用纹理offset偏移

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Processing 网格(棋盘格)无限偏移纹理动画

    过火 再度出击!这次我们要玩得更火一点---把静帧变动画.没错,将棋盘格动起来!看一下效果: 这是一个经典的无限偏移动画,在很多2d横版射击游戏中都会采用的技术.如何在Processing中实现,有两 ...

  8. Unity3D脚本中文系列教程(十三)

    http://dong2008hong.blog.163.com/blog/static/469688272014032334486/ Unity3D脚本中文系列教程(十二) ◆ function G ...

  9. 基于unity3d和leap motion的拼图游戏

    近期用unity3d引擎做了一个拼图游戏,会分几次写完,以此作为总结. 本文基本查找了网上能查到的全部资料作为參考.也算是大家节省了时间. 眼下仅仅完毕了拼图部分,leap motion手势控制部分会 ...

随机推荐

  1. HTML5 <a>标签的ping属性用法

    随着移动互联网用户井喷式的增长,web前端开发中的HTML5在近几年备受瞩目,越来越多的人从事html5开发相关工作.今天小编也来凑个热闹,和大家一起来谈谈HTML5中<a>标签的ping ...

  2. [ShareSDK for Android]新浪微博常见问题

    一.新浪sso授权报错sso package or sign error 1. 新浪微博开放平台应用没有审核通过,不能用sso登陆,否则报错.关闭sso登陆Platform platform = Sh ...

  3. Windows Server 2016软件定义存储:Storage Spaces Direct的关键特性

    [TechTarget中国原创] 微软在Windows Server 2016 Technical Preview 2中引入了Storage Spaces Direct.这个特性将本地存储扩展为高可用 ...

  4. Knockout.Js官网学习(系列)

    1.Knockout.Js官网学习(简介) 2.Knockout.Js官网学习(监控属性Observables) Knockout.Js官网学习(数组observable) 3.Knockout.Js ...

  5. Open vSwitch实践——VLAN

    # virt-clone --original=centos65 --name=vm2 --file=vm2.qcow2 正在克隆 centos65.qcow2                     ...

  6. mycat初探

    1:安装客户端 yum install mysql 2:安装服务端 yum install mysql-server 3:mycat要求不区分大小写 my.cnf(/etc/my.cnf)的[mysq ...

  7. 用CAKeyframeAnimation构建动画路径

    复杂路径的动画,我们可以借助关键关键帧动画(CAKeyframeAnimation)来实现,给其的path属性设置相应的路径信息即可. 以下为一个红色的小球按照指定的路径运动的动画. 此动画关键在于如 ...

  8. 【网络编程】——connect函数遇见EINTR的处理

    最近在公司项目中突然报错如下 “connect: Interrupted system call”, 经过查找代码发现是在创建 socket 中执行了 connect 函数失败导致.上网查阅资料发现这 ...

  9. Newtonsoft 自定义输出内容

    高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称 7.动态决定属性是否序列化 8.枚举值的自定义格式化问题 9.自定义类型转换 ...

  10. 国内的maven镜像

    阿里云 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>ht ...