unity移动插件 DOTween Pro 1.0.075
//十秒内X,Y,Z 局部坐标(localPosition)移动到 10,10,10 位置
//transform.DOBlendableLocalMoveBy(new Vector3(10, 10, 10), 10);
//十秒内 X,Y,Z 方向的局部旋转(localPosition),转动到 30,30,30
//transform.DOBlendableLocalRotateBy(new Vector3(30, 30, 30), 10);
//十秒内X,Y,Z坐标移动到 自身坐标 加 new Vector3( 10,
unity官方无限滚动插件EnhancedScroller v2.15.6
EnhancedScroller虚拟化您的数据,只显示它需要的元素。采取数千行并将其显示在少数UI元素中,加快处理速度并节省内存。没有对象被破坏,所以你的平台不必运行垃圾收集。最重要的是,它可以在Unity内置的UI系统组件上运行。
列表是数据驱动和动态创建的,因此您不必在设计时设置它们。 Scroller不需要知道数据或查看演示文稿,只关注管理您的列表以获得真正的MVC体验。可选循环允许您显示无限数据列表。每个单元格可以有自己的大小,或者它们都可以共享相同的大小。可选的捕捉使您可以将单元格锁定到特定位置。补间操作可以减轻您的跳跃和捕捉过渡,以提供流畅的用户体验。
unity无限滚动,可排序,多个场景可测试
UGUI ScrollView无限滚动组件是项目工程里常用的优化方案,在网上找了许多参考方案,但是看着都比较复杂,一些功能比较多的插件源码行数甚至在两千以上,暂时没有时间去研究。
这里提供一个最基础的无限滚动源码,旨在为UGUI初学者提供参考,若需更多功能需自行添加或者使用更成熟的插件。若有不成熟的地方,请大家指教。
unity无限滚动,可排序,多个场景可测试
UGUI ScrollView无限滚动组件是项目工程里常用的优化方案,在网上找了许多参考方案,但是看着都比较复杂,一些功能比较多的插件源码行数甚至在两千以上,暂时没有时间去研究。
这里提供一个最基础的无限滚动源码,旨在为UGUI初学者提供参考,若需更多功能需自行添加或者使用更成熟的插件。若有不成熟的地方,请大家指教。
Desktop.zip
我们来介绍一下它的组件和参数设置:
LightManagerForLight和FogLight:
他们是一套,所有的体积光都会带有FogLight脚本,而LightManagerForLight会将这些脚本统一管理计算光照在体积雾上的效果
Desktop.zip
unity体积光照明系统Hx Volumetric Lighting 1.3.6
要求Unity 5.1.4 或更高版本。
VR Single pass stereo now supported (5.4.1+)
Hx Volumetric Lighting is the easiest way to get high quality volumetric lighting in your Unity scene, adding depth and realism with rays of light and fog of variable density. It's easy to use and runs efficiently.
Features
Supports Shadow casting lights
Supports multiple lights - any number and combination of point lights, spot lights, and directional lights.
It's dynamic - you can move lights around in real-time.
Vary the air density with particle emitters or 3D noise.
Use height fog to get a low hanging fog look.
Mie scattering for more realistic results
Supports transparency.
Supports light cookies.
Supports low resolution rendering with advanced up-sampling and temporal sampling, allowing faster fr amerates.
Easy to use. Just drop a few sc ripts on your camera and lights.
对象池模板
预制体挂BulletReusable脚本生成预制体,空物体挂Test,预制体名字在Test中改
NPOI开发包及教程,C#读取Word,Excel
NPOI开发包及教程,解压打开.使用C#窗体编程实现读取EXCEL,word,pdf等文件内容
Curvy为unity场景快速生成运动轨迹
Curvy是一个非常强大的第三方插件,用于在unity中快速生成游戏轨道,关于此插件的教程网上几乎找不到,官方的视频教程是一个讲法式英语的人讲的,不但视频模糊让人听的简直爆炸,我反正听了一半差点砸电脑了,最后主要还是靠折腾demo结合视频把主要的用法弄明白了。这里结合官方demo中的几个介绍这个插件的用法,其实很简单,学会后可以轻松拖出一条甚至多条复杂的轨迹,然后可以让物体沿着轨迹运动,更强大的是可以在轨迹上动态生成相应的赛道和轨道,可以控制刚体在轨道上自由运动。
EasyTouch触控
在场景目录列表中 添加EasyTouch物体
EasyTouch <wbr>单指或多指手势动作识别Enable EasyTouch
EasyTouch触屏功能开启或关闭
Enable Unity Remote
远程unity ? 开启多指触屏模式 (最终打包时,关闭此选项)
GUI兼容
EasyTouch <wbr>单指或多指手势动作识别
Enable Uniyt UI detection
开启或关闭Unity UI元素触屏识别
Unity UI compatibility
Enable : 如果开启,则手指在接触UI元素时不触发EasyTouch的相关手势事件
Disable : 触发EasyTouch的相关手势事件,并在gesture参数中设置Gesture.isOverUIElement为true.
Enable : 每帧更新UI组件
NGUI相关忽略
可交互元素
EasyTouch <wbr>单指或多指手势动作识别
Enable auto-select
3d物体时能被触摸识别
pickable layers 3D
能够被触摸识别的3d物体层级
Auto update picked gameobject
每帧更新当前触摸的游戏物体对象
Enable 2D collider
开启2d物体碰撞器识别
pickable 2D layers
能够被触摸识别的2d物体层级
手势参数设置
EasyTouch <wbr>单指或多指手势动作识别
Priority to
优先处理点击或滑动的手势
Tap : 手指移动的间距小于 Stationary tolerance 值, 被识别为点击操作
Slips : 手指移动的间距大于 Stationary tolerance 值, 被识别为滑动操作
Stationary tolerance
手指移动间距 (像素)
Long tap time
长按多久才出发点击
Double tap time
双击最大间隔时间
Swipe tolerance
手势方向角度误差
双指手势属性
EasyTouch <wbr>单指或多指手势动作识别
2 Fingers gesture
开启双指手势识别
Pick method
选中物体的方式
Finger : 双指必须同时触摸同一个物体
Average : 双指的中心位置在物体上就可以选中物体
Enable swipe & drag
能够识别滑动或拖动手势
Enable Pinch
识别向内挤压动作
Min pinch length
识别挤压动作的最小移动间距
Enable twist
能识别选择动作
Min twist angle
最小能够识别旋转角度
在场景中一个物体上添加Easytouch物体
Using HedgehogTeam.EasyTouch; //引用插件
单个手指操作
1: 单指触摸屏幕
被触摸的物体脚本中添加以下事件
EasyTouch.On_TouchStart += MyTouchStart; // 开始触摸瞬间 void MyTouchStart (Gesture gesture){ … } //注册触摸事件的自定义方法, 参数是Gesture
EasyTouch.On_TouchDown +=MyTouchDown //触摸状态 void MyTouchDown(Gesture gesture)
EasyTouch.On_TouchUp+=MyTouchUp //停止触摸 void MyTouchUp(Gesture gesture)
判断当前是否触摸脚本所在的游戏物体
If(gesture.PickGameObject=this.gameObject)
2: 单指点击屏幕
EasyTouch.On_SimpleTap += MySimpleTap
void MySimpleTap(Gesture gesture)
3: 单指长按屏幕 长按激活, 会有Start 到 End 的过程 而触摸是 Start Down Up 的过程
EasyTouch.On_LongTapStart += MyLongTapStart //开始点击瞬间
EasyTouch.On_LongTap +=MyLongTap //长按中
EasyTouch.On_LongTapEnd+=MyLongTapEnd //停止点击
4:单指双击屏幕
EasyTouch.On_DoubleTap+= MyDoubleTap
void MyDoubleTap(Gesture gesture)
{...}
双指操作
双指触摸
双指触摸和单指触摸事件名称后缀加2fingers 就可以了
EasyTouch.On_TouchStart2Fingers +=MyTouchStart2Fingers //双指触摸瞬间 void MyTouchStart2Fingers(Gesture gesture) { … }
EasyTouch.On_TouchDown2Fingers +=MyTouchDown2Fingers //双指触摸时
EasyTouch.On_TouchUp2Fingers+=MyTouchUp2Fingers // 双指离开屏幕时
EasyTouch.On_Cancle2Fingers+=MyCancle2Fingers // 取消双指触摸(只要有一只手指离开便生效)
注意双指需要都触摸当前游戏物体才可以出发该事件
双指点击
单指点击事件名加2fingers后缀
EasyTouch.OnSimpleTap2Fingers += MySimpleTap2Fingers
双指长按
EasyTouch.On_LongTapStart2Finger += MyLongTapStart2Fingers //双指触碰瞬间
EasyTouch.On_LongTap2Finger+= //双指触摸时
EasyTouch.On_LongTapEnd2Finger +=
EasyTouch.On_Cancle2Fingers += //取消双指触摸(只要有一只手指离开便生效)
双指双击
EasyTouch.On_DoubleTap2Finger +=
双指拖动
EasyTouch.OnDragStart2Fingers
EasyTouch.OnDrag2Fingers
EasyTouch.OnDragEnd2Fingers
双指捏,压紧
EasyTouch.OnTouchStart2Fingers
EasyTouch.OnPinchIn //双指向内挤压
EasyTouch.OnPinchOut //双指相反方向移动
EasyTouch.OnPinchEnd //结束捏的动作
在OnTouchStart2Finger 监听事件函数中
开启pinch模式
EasyTouch.SetEnablePinch(true);
关闭扭转模式
EasyTOuch.SetEnableTwist(false);
在On_PinchIn监听函数中
获得每秒中 双指的缩放值
float zoom = gesture.deltaPinch *time.deltaTime; //注意gesture.deltaTime 恒大于0
对当前物体缩放
Vector3 scale=transform.localScale
Transform.localScale=new Vector3(scale.x-zoom,scale.y-zoom,scale.z-zoom);
在On_PinchOut 监听函数中
Transform.localScale=new Vector3(scale.x+zoom,scale.y+zoom,scale.z+zoom); //加上缩放系统
在On_PinchEnd监听方法中
开启扭转模式
EasyTouch.SetEnableTwist(true);
双指旋转
EasyTouch.OnTouchStart2Fingers
EasyTouch.OnTwist += MyTwist //开始扭转
EasyTouch.OnTwistEnd //扭转结束
EasyTouch.OnCancle2Finger //双指离开屏幕
在OnTouchStart2Fingers 中 开启扭转模式,关闭旋转模式
在OnTwist的监听函数中
Void MyTwist(Gesture gesture)
{
If(gesture.pickGameObject=this.gameObject)
{
transform.rotate(new vector3(0,0,gesture.twistAngle)); //gesture.twistAngle 扭转角度
}
}
通用操作
通用是指单个手指或多个手指都能触发的事件 有拖拽动作, 手指划过姿势动作(一个方向划过)
拖拽操作
EasyTouch.On_DragStart+= MyDragStart //开始滑动瞬间 void MyDragStart(Gesture gesture)
EasyTouch.On_Drag +=MyDrag //滑动中
EasyTouch.On_DragEnd+=MyDragEnd //结束滑动时
gesture.fingerIndex 等于0单指,1双指 //当前接触屏幕的手指数,在滑动屏幕时,需要先在On_DragStart中记录手指的数目,在On_Drag过程中检验手指数目是否和开始时数量一致 单个手指,多个手指都会调用这个方法
If(gesture.pickedGameobject=this.gameObject&& gesture.fingerIndex= =0)
{…}
Vector3 touchPointInWorld =gesture.GetTouchToWorldPoint( gesture.pickObject.transform.position) //获得当前触摸点在世界中的位置,世界坐标触摸点离摄像机的距离和传入参数的物体到摄像机的距离相同
float angle=gesture.GetSwipeOrDragAngle(); // 拖动的角度 ; xy轴 -180°到180° x轴正方向 0° y轴正方向 90° y轴负方向 -90°
划过姿势
EasyTouch.OnSwipe += MySwipe
EasyTouch.swipeDirection swipe=gesture.swipe; //滑动方向 : 上下左右
以上触摸的事件都在写在每个被触摸的脚本中,下面是用一个全局的脚本来管理所有的触摸事件
该示例来自 插件中RTS_Example_With_New_Syntaxe demo场景
在update函数中
更新 当前的Gesture
Gesture currentGesture=EasyTouch.current;
if(currentGesture.type=EasyTouch.EvtType.On_SimpleTap) //如果当前触碰的是单指点击事件
hig高亮模型插件
void OnTap() {
Highlighter h = gesture.Selection.AddComponent<Highlighter>();;
// 开启外发光(颜色)
h.ConstantOn(Color.yellow);
// 关闭外发光()
h.ConstantOffImmediate();
// 闪烁,从第一个颜色到第二个颜色 频率2f
h.FlashingOn(Color.blue, Color.cyan, 2f);
AVProVideo视频播放器
public MediaPlayer _mediaPlayer;
// 播放
public void OnPlayButton() {
if( _mediaPlayer ) {
_mediaPlayer.Control.Play();
}
}
// 暂停
public void OnPauseButton() {
if( _mediaPlayer ) {
_mediaPlayer.Control.Pause();
}
}
// 重播
public void OnRewindButton() {
if( _mediaPlayer ) {
_mediaPlayer.Control.Rewind();
}
}
// 调节音量
public void OnAudioVolumeSlider() {
if (_mediaPlayer && _audioVolumeSlider && _audioVolumeSlider.value != _setAudioVolumeSliderValue) {
_mediaPlayer.Control.SetVolume(_audioVolumeSlider.value);
}
}
// 静音
public void OnMuteChange() { if (_mediaPlayer) {
_mediaPlayer.Control.MuteAudio(_MuteToggle.isOn);
}
}
// 拖动进度
public void OnVideoSeekSlider() {
if (_mediaPlayer && _videoSeekSlider && _videoSeekSlider.value!= _setVideoSeekSliderValue) {
_mediaPlayer.Control.Seek(_videoSeekSlider.value * _mediaPlayer.Info.GetDurationMs());
}
}
dotween.0.9.690
//十秒内X,Y,Z 局部坐标(localPosition)移动到 10,10,10 位置
//transform.DOBlendableLocalMoveBy(new Vector3(10, 10, 10), 10);
//十秒内 X,Y,Z 方向的局部旋转(localPosition),转动到 30,30,30
//transform.DOBlendableLocalRotateBy(new Vector3(30, 30, 30), 10);
//十秒内X,Y,Z坐标移动到 自身坐标 加 new Vector3( 10,10,10) 位置 原始 坐标 3,3,3,移动后 13,13,13
//transform.DOBlendableMoveBy(new Vector3(10, 10, 10), 10);
//十秒内X,Y,Z自身旋转到 30,30,30(有父物体的相对于父物体)
//transform.DOBlendableRotateBy(new Vector3(30, 30, 30), 10);
//十秒内 自身X,Y,Z方向的比例 加 3,3,3如原始比例 2,1,1 变化后5,4,4
//transform.DOBlendableScaleBy(new Vector3(10, 10, 10), 10);
//执行该方法,变化立即结束,且完成移动
//transform.DOComplete();
//在变化过程中执行该方法,则物体慢慢的变回原样,如果变化已经完成,该方法无效
//transform.DOFlip();
// 变化过程中执行该方法,则物体变化到 第二秒 时该物体的位置、比例等
//transform.DOGoto(2);
//十秒内 弹跳 3次
//transform.DOJump(new Vector3(10, 10, 10), 3, 10);
//停止掉当前的变化
//transform.DOKill();
// 十秒内 弹跳 3次, 局部坐标最终变化为 10, 0, 10
//transform.DOLocalJump(new Vector3(10, 10, 10), 3, 10);
// 5 秒内, 局部坐标变化到 10,10,10
//transform.DOLocalMove(new Vector3(10, 10, 10), 5);
// 10 秒内 X 局部坐标变换到 5
//transform.DOLocalMoveX(5, 10);
// 10 秒内 Y 局部坐标变化到 5
//transform.DOLocalMoveY(5, 10);
//10 秒内 Z 局部坐标变化到 5
//transform.DOLocalMoveZ(5, 10);
//transform.DOLocalPath();
//5 秒内 局部旋转变化到 10,10, 10
//transform.DOLocalRotate(new Vector3(10, 10, 10), 5);
// 自身朝向 坐标(10,10,10)
//transform.DOLookAt(new Vector3(10, 10, 10), 5);
// 5 秒内 移动到 坐标 (10,10,10)
//transform.DOMove(new Vector3(10, 10, 10), 5);
//10 秒内 X 局部坐标变化到 5
//transform.DOMoveX(5, 10);
//10 秒内 Y 局部坐标变化到 5
//transform.DOMoveY(5, 10);
//10 秒内 Z 局部坐标变化到 5
//transform.DOMoveZ(5, 10);
//
//transform.DOPath();
//执行该方法停止 变化
//transform.DOPause();
//transform.DOPlay();
//变化结束前调用该方法,物体回到原始位置
//transform.DOPlayBackwards();
//执行 transform.DOPlayBackwards(); 物体回到原始位置
//执行 下面方法则再次变化
//transform.DOPlayForward();
//冲压机,在 5 秒内在原始坐标和下面坐标之间,来回冲压
//transform.DOPunchPosition(new Vector3(10, 10, 10), 5);
//冲压机,在 5 秒内在原始旋转和下面角度之间,来回冲压变化
//transform.DOPunchRotation(new Vector3(50, 50, 50), 5);
//冲压机,在 5 秒内在原始比例和下面比例之间,来回冲压变化
//transform.DOPunchScale(new Vector3(5, 5, 5), 5);
//在变化结束之前,执行该方法,则重新开始变化
//transform.DORestart();
//变化过程中执行该方法,回到原始
//transform.DORewind();
// 10 秒内 旋转角度 到 (50,50,50)
//transform.DORotate(new Vector3(50, 50, 50), 5);
// 10 秒内 比例变化到 (5,5,5)
//transform.DOScale(new Vector3(5, 5, 5), 5);
// 10 秒内 X 比例变化到 5
//transform.DOScaleX(5, 10);
// 10 秒内 Y 比例变化到 5
//transform.DOScaleY(5, 10);
// 10 秒内 Z 比例变化到 5
//transform.DOScaleZ(5, 10);
// 10 秒内 物体 X,Y,Z 坐标在 自身-5 到 自身加 5 之间震动
//transform.DOShakePosition(10, new Vector3(10, 10, 10));
// 10 秒内, 物体 X,Y,Z 旋转角度在 自身-5 到 自身加 5 之间震动
//transform.DOShakeRotation(10, new Vector3(10, 10, 10));
// 10 秒内, 物体 X,Y,Z 比例在 自身-5 到 自身加 5 之间震动
//transform.DOShakeScale(10, new Vector3(10, 10, 10));
//在变化过程中执行该方法,停止、开始、停止、开始
//transform.DOTogglePause();
// 执行该方法,坐标立即变化为 0,5,0, 从 0,5,0 两秒移动到初始位置
//transform.DOMove(new Vector3(0, 5, 0), 2).From();
// 执行该方法,移动到相对于原始位置 6,0,2 的位置
// 如原始位置 3,2,1。 移动后位置为 3+6,2+0,2+2 即 9,2,4
//transform.DOMove(new Vector3(6, 0, 2), 2).SetRelative();
ITween插件
1. CameraFade(摄像机的渐隐)
其中Camera或者场景的东西并没有消失,只是在屏幕上贴了一张贴图
首先,要用到摄像机的渐隐/显功能的话,必须调用CameraFadeAdd()函数,来添加背景图片,不然在运行时会包错。
下面来讲解一下CameraFade里面需要用到的几个函数
1) CameraFadeAdd() //当不传参的时候,会默认一个黑色的背景
CameraFadeAdd(Texture2D texture) //摄像机视图渐隐后显示texture
CameraFadeAdd(Texture2D texture,int depth) //同上,depth的作用暂时不知道,猜测与分层有关,可能类似PS中的图层
2)CameraFadeDepth(int depth) //改变刚才texture的depth
3)CameraFadeDestroy() //移除并摧毁
4)CameraFadeTo(float amount,float time) 从当前视图转换到前面设置的视图(texture)
//amount透明度,介于0~1之间。等于1
时Texture完全覆盖Camera视图
//time是达成该效果需要多少秒
CameraFadeTo(Hashtable args) //用哈希表可以设置更详细的内容
此函数的哈希表key有:name,amount,time,delay,easetype,looptype,onstart等,KEY作用以及值参考提供的EXCEL文档中的HASHTABLE项
5)CameraFadeFrom(float amount,float time)
CameraFadeTo(Hashtable args)
//从前面设置的视图(texture)转换到当前视图,参数参考CameraFadeTo
6)CameraTexture(Color color) //创建一个单色的用于CameraFade的texture2d
2. Audio音频
同CameraFade一样,itween中对音频的控制也并没有结束音频的播放,而是控制的音频的音量(volume)和音调(pitch)。音频文件赋值到某个GO上,将GO给函数传参
1)AudioTo(GameObject target, float volume, float pitch, float time) //target为挂载音频的对象,volume/pitch为最终要达到的音量/音调(volume的值为0~1),达到目的所需的时间
AudioTo(GameObject target, Hashtable args)
//hashtab参数:name,audiosource,volume,pitch,time,delay,easetype,looptype,onstart等
其中Audiosource是你挂载音频的物体
2)AudioFrom(GameObject target, float volume, float pitch, float time)
AudioFrom(GameObject target, Hashtable args)
这个就不详解了,就一个FROM和TO的区别,参数都一样
3)AudioUpdate(GameObject target, float volume, float pitch, float time)
AudioUpdate(GameObject target, Hashtable args)
a)这个函数主要用在那种会循环调用的函数里面,比如系统的Update()函数,它会不断的降低音量音调来接近你设置的那个值,降低那个差值会递减。
b)这里需要注意的是,即使使用hashtable也只有以下这几个参数:
audiosource,volume,pitch,time
3. Color(颜色)
函数类似上面的audio,具体参数解析,可以参考excel文档中的color hashtable
函数有以下几个:
1)ColorFrom(GameObject target, Hashtable args)
ColorFrom(GameObject target, Color color, float time)
2)ColorTo(GameObject target, Hashtable args)
ColorTo(GameObject target, Color color, float time)
3)ColorUpdate(GameObject target, Color color, float time)
ColorUpdate(GameObject target, Hashtable args)
在这里会引入一个比较特别的新的参数,NamedValueColor,这是一个枚举变量,有一下几个值:_Color,_SpecColor,_Emission,_ReflectColor具体意义可以参考EXCEL 文件
4. Draw(画线)的几个函数区别
DrawLine(Vector3[] path)
DrawLine(Vector3[] path, Color color)
DrawLine(Transform[] path)
DrawLine(Transform[] path,Color color)
DrawLineGizmos
DrawLineHandles
DrawPath
DrawPathGizmos
DrawPathHandles
PathLength //返回路径长度
这些函数必须放在OnDrawGizmos()里面使用。OnDrawGizmos()和Start()一样直接放在脚本类内部的最外层。DrawPath的效果是在编辑器内部可以看到,但是运行时没有的
每个函数的参数和DrawLine()一样,就不一一列举了。
其中DrawLine是画直线而DrawPath是画曲线路径,也是物体移动的实际路径。
函数以Gizmos结尾的和没有的效果一样,而以Handles结尾的暂时有一个不兼容的问题,不能用,这样算下来,这几个函数里面有用的也就三个:
DrawLine()
DrawPath()
PathLength()
在这里还有一个函数,用于给你的路径上的画一个线圈,方便观察
Gizmos.DrawWireSphere(Vector3 position,float radius); //参数一为位置,参数二为半径
效果如图:
5. 物体渐隐(FadeTo,FadeFrom,FadeUpdate)
主要是对物体的alpha通道值进行改变,使物体逐渐透明。
这里要注意的是,需要改了shader参数,这个效果才会生效。首先你给物体添加一个Material后,选中物体,查看inspector视图,在Material处你会看到一个shader选项,点击选择transparant->Diffuse
6. 物体朝向(LookFrom,LookTo,LookUpdate)
1)LookFrom(GameObject target, Vector3 looktargetposition, float time)
LookFrom(GameObject target, Hashtable args)
2)LookTo(GameObject target, Vector3 looktargetposition, float time)
LookTo(GameObject target, Hashtable args)
前两个函数的哈希表参数如下:
name,looktarget,axis,time,speed,delay,easetype,looptype,onstart等,具体的可以参考EXCEL文件
3)LookUpdate(GameObject target, Hashtable args)
LookUpdate(GameObject target, Vector3 looktargetposition, float time)
用于循环函数,如Update()中,使物体一直朝向looktargetposition,
7. 移动(Move*)
1)MoveAdd(GameObject target, Vector3 amount, float time)
MoveAdd(GameObject target, Hashtable args)
2)MoveBy(GameObject target, Vector3 amount, float time)
MoveBy(GameObject target, Hashtable args)
3)MoveFrom(GameObject target, Vector3 position, float time)
MoveFrom(GameObject target, Hashtable args)
4)MoveTo(GameObject target, Vector3 position, float time)
MoveTo(GameObject target, Hashtable args)
5)MoveUpdate(GameObject target, Vector3 position, float time)
MoveUpdate(GameObject target, Hashtable args)
这几个函数的不使用哈希表作为参数的时候没有区别,但是当引入哈希表的时候,movefrom和moveto可以根据一个vector3序列(path)进行运动,而moveadd和moveby只能点对点运动,moveby和moveadd这两个函数经过测试,我表示他们没区别,当然要是你发现他们之间的区别的时候,记得联系我告诉我哦,大家相互学习嘛。Moveupdate和其他**update原理一样,就不讲了,具体的参数也都比较好理解,哈希表参数可以参考我的EXCEL文档
Moveupdate的哈希表参数只有:
position,x,y,z,orienttopath,looktarget,looktime,axis,islocal,time
(PS:参数之间有的是不能同时为真的哦,比如orienttopath和looktarget)
8. 暂停itween(Pause)
当某itween被赋予“ignoreTimeScale”时,无法暂停
函数比较简单,我就直接贴在下面了:
Pause(GameObject target) //暂停gameobject上的所有itween
Pause(GameObject target, bool includechildren) //暂停gameobject上的所有itween,是否包括孩子
Pause(GameObject target, string type) //暂停gameobject上的,某个类型的所有itween
Pause(GameObject target, string type, bool includechildren) //暂停gameobject上的,某个类型的所有itween,是否包括孩子
Pause() //暂停场景中的所有itween
9. Resume继续
就和上面的暂停一个样,就不详细讲了
Resume(GameObject target)
Resume(GameObject target, bool includechildren)
Resume(GameObject target, string type)
Resume(GameObject target, string type, bool includechildren)
Resume()
10. Stop停止
就和上面的暂停一个样,就不详细讲了
Stop()
Stop(string type)
Stop(GameObject target)
Stop(GameObject target, bool includechildren)
Stop(GameObject target, string type)
Stop(GameObject target, string type, bool includechildren)
11. StopByName根据名字停止
StopByName(string name)
12. 外力击打效果(PunchPosition,PunchRotation,PunchScale)
用于模拟物体受外力后,改变位置,旋转,大小的效果。
PunchPosition(GameObject target, Vector3 amount, float time)
PunchPosition(GameObject target, Hashtable args)
PunchRotation(GameObject target, Vector3 amount, float time)
PunchRotation(GameObject target, Hashtable args)
PunchScale(GameObject target, Vector3 amount, float time)
PunchScale(GameObject target, Hashtable args)
这几个函数没有引入新的哈希表参数,就不详细讲解了
13. PutOnPath
把物体放到某路径的百分之几的位置
PutOnPath(GameObject target, Vector3[] path, float percent)
PutOnPath(GameObject target, Transform[] path, float percent)
PutOnPath(Transform target, Vector3[] path, float percent)
PutOnPath(Transform target, Transform[] path, float percent)
14. PointOnPath
返回一个在路径上百分之几的位置的vector3 position
PointOnPath(Transform[] path, float percent)
PointOnPath(Vector3[] path, float percent)
15. RectUpdade
RectUpdate(Rect currentValue, Rect targetValue, float speed) : Rect
具有返回值
这东西,暂时没搞懂怎么用,反正效果就是一个矩形,在给出的值之间不停的变换位置和大小
16. 旋转(Rotate**)
根据移动(Move**)的函数推理一下就懂了,相信你的能力
RotateAdd(GameObject target, Vector3 amount, float time)
RotateAdd(GameObject target, Hashtable args)
RotateBy(GameObject target, Vector3 amount, float time)
RotateBy(GameObject target, Hashtable args)
RotateFrom(GameObject target, Vector3 rotation, float time)
RotateFrom(GameObject target, Hashtable args)
RotateTo(GameObject target, Vector3 rotation, float time)
RotateTo(GameObject target, Hashtable args)
RotateUpdate(GameObject target, Hashtable args)
RotateUpdate(GameObject target, Vector3 rotation, float time)
17. 规模(Scale**)
根据移动(Move**)的函数推理一下就懂了,相信你的能力
ScaleAdd(GameObject target, Vector3 amount, float time)
ScaleAdd(GameObject target, Hashtable args)
ScaleBy(GameObject target, Vector3 amount, float time)
ScaleBy(GameObject target, Hashtable args)
ScaleFrom(GameObject target, Vector3 scale, float time)
ScaleFrom(GameObject target, Hashtable args)
ScaleTo(GameObject target, Vector3 scale, float time)
ScaleTo(GameObject target, Hashtable args)
ScaleUpdate(GameObject target, Vector3 scale, float time)
ScaleUpdate(GameObject target, Hashtable args)
18. 晃动(Shake**)
根据你给的参数进行位置旋转大小的晃动,比较特别的是,这个晃动会逐步减小归于平静。看了前面那些函数的参数作用,相信这个也不是问题了:
ShakePosition(GameObject target, Vector3 amount, float time)
ShakePosition(GameObject target, Hashtable args)
ShakeRotation(GameObject target, Vector3 amount, float time)
ShakeRotation(GameObject target, Hashtable args)
ShakeScale(GameObject target, Vector3 amount, float time)
ShakeScale(GameObject target, Hashtable args)