我正在使用Animator創建一個On/Off 切換按鈕。
我試圖讓影像改變,顏色改變,文字改變。
結果,我改變了影像和顏色,但我不知道如何改變文本內容。我沒有看到影片師添加的欄位。
用影片師改變文本內容是不可能的嗎?
uj5u.com熱心網友回復:
您的問題的簡短回答是否定的,您不能在 Unity 影片中應用稱為Type Writer的效果。但是下面的代碼可以解決您的問題。下面的代碼是一個基本的 Type Writer 效果,通過呼叫 Coroutine 來作業。設定你TextMeshProUGI
的第一個引數,效果就完成了。
public TextMeshProUGUI tmp;
public void Start()
{
StartCoroutine(TypeWriter("Your text here..", .2f));
}
public IEnumerator TypeWriter(string text, float waitTime)
{
for (var i = 0; i < text.Length; i )
{
tmp.text = text.Substring(0, i);
yield return new WaitForSecondsRealtime(waitTime);
}
}
如何向 Animator 添加型別撰寫器效果?
在這里,我建議一種在影片師中應用此效果的好方法。在影片器中單擊您想要的狀態,然后單擊AddBehavior
以創建 Type Writer Script。
最后,您所要做的就是將腳本參考到 OnStateEnter 事件。我已經從我的 MenuManager 單例中呼叫了這里的腳本,你也可以將它放在你的影片角色中。
public class TypeWriter : StateMachineBehaviour
{
public string text;
public float waitTime;
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
MenuManager.singleton.StartCoroutine(TypeWriter(text, waitTime)); // reference your mono behaviour script here
}
}
如果您在影片師角色內部撰寫了腳本型別撰寫器,您可以在下面得到它。請記住將您的腳本名稱替換為Character
波紋管上的型別,也IEnumerator
只能用于mono behavior
.
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
animator.GetComponent<Character>().StartCoroutine(TypeWriter(text, waitTime)); // reference your mono behaviour script here
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/483837.html
上一篇:為什么跳躍的長度不同?
下一篇:C#使2個變數彼此相等