58 lines
1.6 KiB
C#
58 lines
1.6 KiB
C#
using DG.Tweening;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class HomeMessageController : MonoBehaviour
|
|
{
|
|
// Start is called before the first frame update
|
|
float startX;
|
|
private void Awake()
|
|
{
|
|
startX = transform.Find("TextContainer/Content").localPosition.x;
|
|
}
|
|
void Start()
|
|
{
|
|
|
|
}
|
|
float timer = 2;
|
|
public float? textWidth = null;
|
|
private bool isAnimated = false;
|
|
public void Initial()
|
|
{
|
|
transform.Find("TextContainer/Content").localPosition = new Vector2(startX, transform.Find("TextContainer/Content").localPosition.y);
|
|
isAnimated = false;
|
|
}
|
|
float playtime = 0;
|
|
#if UNITY_STANDALONE_WIN
|
|
float maxWidth = 226;
|
|
#else
|
|
float maxWidth = 180;
|
|
#endif
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
timer -= Time.deltaTime;
|
|
if (timer <= 0)
|
|
{
|
|
//do
|
|
if (textWidth.HasValue && textWidth > maxWidth && !isAnimated)
|
|
{
|
|
isAnimated = true;
|
|
var offset = textWidth.Value - maxWidth;
|
|
var game = transform.Find("TextContainer/Content");
|
|
var v = 20 / 0.3f;
|
|
playtime = offset / v;
|
|
//匀速播放
|
|
game.DOLocalMoveX(startX - offset, playtime).onComplete
|
|
= () => Invoke("returnAni", 1.5f);
|
|
}
|
|
timer += 3;
|
|
}
|
|
}
|
|
void returnAni()
|
|
{
|
|
transform.Find("TextContainer/Content").DOLocalMoveX(startX, playtime);
|
|
}
|
|
}
|