using UnityEngine; using UnityEngine.UI; namespace UnityEngine.UI.Extensions.Examples { public class Example01ScrollViewCell : FancyScrollViewCell { [SerializeField] Animator animator; [SerializeField] Text message; static readonly int scrollTriggerHash = Animator.StringToHash("scroll"); /// /// Updates the content. /// /// Item data. public override void UpdateContent(Example01CellDto itemData) { message.text = itemData.Message; } /// /// Updates the position. /// /// Position. public override void UpdatePosition(float position) { currentPosition = position; animator.Play(scrollTriggerHash, -1, position); animator.speed = 0; } // GameObject が非アクティブになると Animator がリセットされてしまうため // 現在位置を保持しておいて OnEnable のタイミングで現在位置を再設定します float currentPosition = 0; void OnEnable() { UpdatePosition(currentPosition); } } }