两点之间往复运动 仿照itween 的pingpong运动
来源:互联网 发布:淘宝店铺号申请 编辑:程序博客网 时间:2024/04/29 21:06
两点之间往复运动 仿照itween 的pingpong运动
usingUnityEngine;
usingSystem.Collections;
publicclassTest : MonoBehaviour
{
publicTransform startPoint;
publicTransform endPoint;
publicfloat moveSpeed = 3;
inta = 0;
voidStart()
{
StartCoroutine(Move());
}
// 物体在两点之间运动
IEnumeratorMoveStart()
{
while(true)
{
transform.position =Vector3.Lerp(transform.position, startPoint.position,Time.deltaTime * moveSpeed);
if(Vector3.Distance(startPoint.position, transform.position) < 0.1f)
{
StopAllCoroutines();
StartCoroutine(MoveEnd());
}
yieldreturn null;
}
}
IEnumeratorMoveEnd()
{
while(true)
{
transform.position =Vector3.Lerp(transform.position, endPoint.position,Time.deltaTime * moveSpeed);
if(Vector3.Distance(endPoint.position, transform.position) < 0.1f)
{
StopAllCoroutines();
StartCoroutine(MoveStart());
}
yieldreturn null;
}
}
IEnumeratorMove()
{
while(true)
{
transform.position =Vector3.Lerp(transform.position, endPoint.position,Time.deltaTime * moveSpeed);
if(Vector3.Distance(endPoint.position, transform.position) < 0.1f)
{
StopAllCoroutines();
StartCoroutine(MoveStart());
}
yieldreturn null;
}
}
}
------------------------------------------------------------------------------------------
usingUnityEngine;
usingSystem.Collections;
///<summary>
/// 两点匀速乒乓运动
///</summary>
publicclassPinpang2 : MonoBehaviour {
publicTransform startPoint;
publicTransform endPoint;
publicfloat timer = 3f;
voidStart()
{
StartCoroutine(Move());
}
// 物体在两点之间运动
IEnumeratorMoveStart()
{
floattime = 0;
while(true)
{
time +=Time.deltaTime;
transform.position =Vector3.Lerp(endPoint.position, startPoint.position, time / timer);
if(Vector3.Distance(startPoint.position, transform.position) < 0.01f)
{
transform.position = startPoint.position;
StopAllCoroutines();
StartCoroutine(MoveEnd());
}
yieldreturn null;
}
}
IEnumeratorMoveEnd()
{
floattime = 0;
while(true)
{
time +=Time.deltaTime;
transform.position =Vector3.Lerp(startPoint.position, endPoint.position, time / timer);
if(Vector3.Distance(endPoint.position, transform.position) < 0.01f)
{
transform.position = endPoint.position;
StopAllCoroutines();
StartCoroutine(MoveStart());
}
yieldreturn null;
}
}
IEnumeratorMove()
{
floattime = 0;
while(true)
{
time +=Time.deltaTime;
transform.position =Vector3.Lerp(startPoint.position, endPoint.position, time/timer);
if(Vector3.Distance(endPoint.position, transform.position) < 0.01f)
{
transform.position = endPoint.position;
StopAllCoroutines();
StartCoroutine(MoveStart());
}
yieldreturn null;
}
}
}
------------------------------------------------------------------
四点匀速移动
usingUnityEngine;
usingSystem.Collections;
publicclassSidainPingpang : MonoBehaviour {
publicTransform startPoint;
publicTransform secondPoint;
publicTransform thirdPoint;
publicTransform endPoint;
publicfloat timer = 3f;
voidStart()
{
StartCoroutine(Move());
}
// 物体在两点之间运动
IEnumeratorMoveStart()
{
floattime = 0;
while(true)
{
time +=Time.deltaTime;
transform.position =Vector3.Lerp(secondPoint.position, startPoint.position, time / timer);
if(Vector3.Distance(startPoint.position, transform.position) < 0.01f)
{
transform.position = startPoint.position;
StopAllCoroutines();
StartCoroutine(MoveEnd());
}
yieldreturn null;
}
}
IEnumeratorMoveSecond()
{
floattime = 0;
while(true)
{
time +=Time.deltaTime;
transform.position =Vector3.Lerp(thirdPoint.position, secondPoint.position, time / (timer / 2));
if(Vector3.Distance(secondPoint.position, transform.position) < 0.01f)
{
transform.position = secondPoint.position;
StopAllCoroutines();
StartCoroutine(MoveStart());
}
yieldreturn null;
}
}
IEnumeratorMoveThird()
{
floattime = 0;
while(true)
{
time +=Time.deltaTime;
transform.position =Vector3.Lerp(endPoint.position, thirdPoint.position, time / timer);
if(Vector3.Distance(thirdPoint.position, transform.position) < 0.01f)
{
transform.position = thirdPoint.position;
StopAllCoroutines();
StartCoroutine(MoveSecond());
}
yieldreturn null;
}
}
IEnumeratorMoveEnd()
{
floattime = 0;
while(true)
{
time +=Time.deltaTime;
transform.position =Vector3.Lerp(startPoint.position, endPoint.position, time / (timer / 2));
if(Vector3.Distance(endPoint.position, transform.position) < 0.01f)
{
transform.position = endPoint.position;
StopAllCoroutines();
StartCoroutine(MoveThird());
}
yieldreturn null;
}
}
IEnumeratorMove()
{
floattime = 0;
while(true)
{
time +=Time.deltaTime;
transform.position =Vector3.Lerp(startPoint.position, endPoint.position, time / (timer / 2));
if(Vector3.Distance(endPoint.position, transform.position) < 0.01f)
{
transform.position = endPoint.position;
StopAllCoroutines();
StartCoroutine(MoveThird());
}
yieldreturn null;
}
}
}
阅读全文
0 0
- 两点之间往复运动 仿照itween 的pingpong运动
- Unity 往复运动的一种计算方法
- 让text不停往复的运动
- Unity里实现简单的往复运动
- Unity_往复运动_057
- 让text不停往复的运动,和上一个有区别
- Unity两点之间模拟抛物线运动
- Unity 小球在两点之间往返运动
- 关于iTween 插件的运动篇
- 三角函数简单控制弹性往复运动
- ITWEEN 相机运动 角色特写
- JAVA学习日志 简单Frame。加载图片,小球的往复运动,线程
- iTween曲线动画(沿着轨迹运动)
- 运动
- 运动
- AR/VR learning (3)--物体的运动与动画(iTween插件的使用)
- 40、JavaScript的运动----缓冲运动
- 运动背景下的运动目标检测
- DTS和PTS的解释
- lbrary not found for lWAP 问题解决
- Github访问速度慢-----win10下
- JSON的数据格式
- noip 2015 day2解题报告
- 两点之间往复运动 仿照itween 的pingpong运动
- 大话设计模式之装饰模式
- Spring学习(九)-AOP切面通知
- nyoj 15 括号匹配(二)
- Hadoop5-用MapReduce写流量求和
- 关于MySQL的几点安全配置
- redis4.0.1主从配置及Sentinel配置自动Failover
- Linux下的I/O复用与epoll详解
- 1670: 和费马开个玩笑