UnityタイムラインでTextを1文字ずつ表示したい
こちらのサイトに掲載されているNarrationBehaviour.csを使って一文字ずつTextが表示されるアニメーションが
作りたいのですが、この通りにコピー&ペーストすると
現在のコンテキストにmParsedTextという名前は存在しません。とエラーが出てしまいます。
確かにコード内でどこを探してもこのパラメータは作られておらず、どこに入れれば解決するのかが分かりません。
https://qiita.com/cha84rakanal/items/1a6997ea31bf7121dddf
該当のソースコード:NarrationBehaviour.cs
C#
1using UnityEngine; 2using UnityEngine.Playables; 3using TMPro; 4 5public class NarrationBehaviour : PlayableBehaviour 6{ 7 public TMP_Text mTextUI { get; set; } 8 9 public override void PrepareFrame(Playable playable, FrameData info) 10 { 11 if (mTextUI != null) 12 { //var mParsedText = int.Parse(mTextUI); 13 var progress = (float)(playable.GetTime() / playable.GetDuration()); 14 var current = Mathf.Lerp(0, mParsedText.Length, progress); 15 var count = Mathf.CeilToInt(current); 16 17 mTextUI.maxVisibleCharacters = count; 18 } 19 } 20}
試したこと :NarrationPlayableAsset.cs
NarrationPlayableAsset.csを作成し、クラス名以外はサイト内でTemplatePlayableAsset.csとして公開されているソースコードを
そのまま貼り付けています。
C#
1 2using UnityEngine; 3using UnityEngine.Playables; 4 5public class NarrationPlayableAsset : PlayableAsset 6{ 7 [SerializeField] 8 private ExposedReference<GameObject> templateGameObject; 9 10 public TemplatePlayableBehaviour template = new TemplatePlayableBehaviour(); 11 12 // Factory method that generates a playable based on this asset 13 public override Playable CreatePlayable(PlayableGraph graph, GameObject go) 14 { 15 var playable = ScriptPlayable<TemplatePlayableBehaviour>.Create(graph, template); 16 17 // Get PlayableBehaviour 18 var behaviour = playable.GetBehaviour(); 19 20 // Resolve Reference 21 behaviour.templateGameObject = templateGameObject.Resolve(graph.GetResolver()); 22 23 return playable; 24 } 25}
補足情報(FW/ツールのバージョンなど)
使用バージョン:Unity2020.2.0f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/09 08:24