本文會爲大家介紹關於UGUI的使用中,經常會用到類似歌詞播放器的效果或者說類似彈幕滾動的效果。
首先說下我的做法:
首先製作一個scroll View。
將Scroll View 下的Context添加unity原生腳本Grid Layout Group,調整Cell Size大小爲你的彈幕的大小尺寸。自行調整。
在Context創建一個text,並隨意填寫內容。
複製多個(10+)看情況而定(看個人情況可以克隆出來,我這裏做例子,直接複製就可以了)
下面貼出代碼核心,只做核心思路解釋,有不同需求的可自行擴充。
文中只寫了類似歌詞面板的效果,橫板的自行修改參數即可,此處不做過多解釋。
參數需要注意的是childcount(text數量,或者說是歌詞行數)和MoveCount(每次移動的數量)
有任何問題直接留言,看到會回覆。 可以添加unity交流QQ羣 207019099 備註“unity 歌詞彈幕效果”。
public float y;
public int movenum = 0;
public int childcount;
public float moveCount;
//public Transform warning;
// Start is called before the first frame update
void Start()
{
y = GetComponent<RectTransform>().localPosition.y;
InvokeRepeating("RefreshMonitorPanel", 0, 2);
}
/// <summary>
/// 刷新面板
/// </summary>
private void RefreshMonitorPanel()
{
if (transform.childCount > childcount)
{
RectTransform rectTransform = transform.GetComponent<RectTransform>();
int count = transform.childCount;
movenum++;
if (movenum == count)
{
rectTransform.localPosition = new Vector3(rectTransform.localPosition.x, rectTransform.localPosition.y- moveCount * (movenum), rectTransform.localPosition.z);
movenum = 0;
}
rectTransform.DOLocalMoveY(rectTransform.localPosition.y + moveCount, 1);
}
}