unity3d中常规移动的四种方法分别是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d中常规移动的四种方法分别是啥?相关的知识,希望对你有一定的参考价值。
1、利用GameObject的Translate,直接改变它的Transform。
2、用MoveTo方法,你只要知道你的目标位置即可。
3、 用Math的Lerp方法计算位置分量的线性差值,以TimeDelta(或其倍数)为调节量,可以使移动变得很平滑。
4、三元数差值Vector3Lerp,及其拓展定速靠近Vector3MoveTowards。
Unity3D是一个用于创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的综合型创作工具。
Unity类似于Director,Blender,Virtools或Torque Game Builder等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Wii、OSX或ios平台。也可以利用Unity web player插件发布网页游戏,支持Mac 和Windows的网页浏览。它的网页播放器也被Mac widgets所支持。
参考技术A 什么叫常规移动。。。纯粹的移动,在API来看只有transform.Translate吧
其他的诸如,三元数差值Vector3.Lerp,及其拓展定速靠近Vector3.MoveTowards,或者平滑阻尼Vector3.SmoothDamp,甚至直接改坐标值,都是可以达到移动的目的,不过这是对三元数Vector3这个结构体的操作,不是专门做移动的,因为Vector3可能是坐标,也可能是角度,或者是向量,也可以是缩放大小,或者自定义的其他的意义。
再说其他的,对某坐标轴的操作,比如改,x,y,z坐标,用Mathf.Lerp或者Mathf.MoveTowards或者其他的修改方式,和上面说的改Vector3一个原理,属于对坐标这个属性的操作。
其实Translate内部也是这个原理,改的是position,也是Vector3。。。
总归来说,所有的移动方式都是对坐标position这个属性的操作,也就是对Vector3的改变。
至于你说的常规移动的四种方法,不知道从哪看来的,一般没这种说法。。。
jQuery事件绑定的四种方法
jQuery中提供了四种绑定事件的方法,分别是bind、live、delegate、on,对应的解除监听的函数分别是unbind、die、undelegate、off:
一、on()方法(首选方法)
on() 方法在被选元素及子元素上添加一个或多个事件处理程序。
自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。
参数:
event:必需。规定要从被选元素移除的一个或多个事件或命名空间。由空格分隔多个事件值。必须是有效的事件
data:可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。
function:可选。规定当事件发生时运行的函数。
map:规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。
语法:$(selector).on(event,childSelector,data,function,map)
举例:给p元素添加单击事件
$("p").on("click",function(){ alert("The paragraph was clicked."); });
二、bind()方法
bind()作用就是在选择到的元素上绑定特定事件类型的监听函数,
参数:
type:必需。事件类型,如click、change、mouseover等;
data:可选。传入监听函数的参数,通过event.data取到。可选;
function:必需。规定当事件发生时运行的函数(监听函数),可传入event对象,这里的event是jQuery封装的event对象,与原生的event对象有区别,使用时需要注意。
map:规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数
语法:$(selector).bind(event,data,function,map)
举例:给<p>添加一个单击事件
$("p").bind("click",function(){ alert("单击p元素"); });
三、live()方法
live(),在版本 1.9 中被移除。请使用on()方法代替。添加一个或多个事件处理程序到当前或未来的被选元素。(还是总结在此)
参数:
event:必需。规定添加到元素的一个或多个事件。由空格分隔多个事件值。必须是有效的事件。
data:可选。传递到该函数的额外参数
function:必需。当事件发生时,运行的函数
语法:$(selector).live(event,data,function)
举例:当点击按钮时,隐藏或显示 <p> 元素:
$("button").live("click",function(){ $("p").slideToggle(); });
四、delegate()方法
delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
参数:
childSelector:必需。规定要添加事件处理程序的一个或多个子元素。
event:必需。规定添加到元素的一个或多个事件。由空格分隔多个事件值。必须是有效的事件。
data:可选。传递到该函数的额外参数
function:必需。当事件发生时,运行的函数
语法:$(selector).delegate(childSelector,event,data,function)
举例:当单击 <div> 元素内部的 <p> 元素时,改变所有 <p> 元素的背景颜色:
$("div").delegate("p","click",function(){ $("p").css("background-color","pink"); });
以上是关于unity3d中常规移动的四种方法分别是啥?的主要内容,如果未能解决你的问题,请参考以下文章