87 lines
2.4 KiB
C#
87 lines
2.4 KiB
C#
using Thousandto.Code.Center;
|
|
using Thousandto.Core.Asset;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Thousandto.Code.Logic
|
|
{
|
|
//循环移动的场景,场景会一直循环移动
|
|
public class LoopMoveSceneScript : MonoBehaviour
|
|
{
|
|
#region//常量
|
|
const float MOVE_START_SPEED = 0f;
|
|
const float MOVE_ADD_SPEED = 5f;
|
|
const float MOVE_MAX_SPEED = 10f;
|
|
#endregion
|
|
|
|
#region//私有变量
|
|
private Transform _downTrans = null;
|
|
private Transform _upTrans = null;
|
|
|
|
private Vector3 _downOriPos = Vector3.zero;
|
|
private Vector3 _upOriPos = Vector3.zero;
|
|
|
|
private float _curSpeed = 0f;
|
|
private float _waitTime = 2f;
|
|
#endregion
|
|
|
|
#region//继承基类
|
|
private void Awake()
|
|
{
|
|
_downTrans = transform.Find("[far]/map016/MoveTa0");
|
|
_upTrans = transform.Find("[far]/map016/MoveTa1");
|
|
|
|
if(_downTrans != null && _upTrans != null)
|
|
{
|
|
_downOriPos = _downTrans.position;
|
|
_upOriPos = _upTrans.position;
|
|
}
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
if(_downTrans != null && _upTrans != null)
|
|
{
|
|
_curSpeed = MOVE_START_SPEED;
|
|
_downTrans.position = _downOriPos;
|
|
_upTrans.position = _upOriPos;
|
|
_waitTime = 2f;
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if(_downTrans == null || _upTrans == null)
|
|
{
|
|
return;
|
|
}
|
|
if(_waitTime > 0f)
|
|
{
|
|
_waitTime -= Time.deltaTime;
|
|
return;
|
|
}
|
|
if(_curSpeed < MOVE_MAX_SPEED)
|
|
{
|
|
_curSpeed += MOVE_ADD_SPEED * Time.deltaTime;
|
|
if(_curSpeed > MOVE_MAX_SPEED)
|
|
{
|
|
_curSpeed = MOVE_MAX_SPEED;
|
|
}
|
|
}
|
|
|
|
_downTrans.position += Vector3.down * _curSpeed * Time.deltaTime;
|
|
_upTrans.position += Vector3.down * _curSpeed * Time.deltaTime;
|
|
|
|
if(_upTrans.position.y <= _downOriPos.y)
|
|
{
|
|
//上面的移动到下面的位置,交换位置
|
|
var tmp = _upTrans;
|
|
_upTrans = _downTrans;
|
|
_downTrans = tmp;
|
|
_upTrans.position = _upOriPos;
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
}
|