private void InitPlaybackButtons(Transform buttonPrefab) { var container = new GameObject("Playback"); container.transform.SetParent(transform, false); var gridLayout = container.AddComponent <HorizontalLayoutGroup>(); gridLayout.spacing = 4f; gridLayout.childForceExpandWidth = false; gridLayout.childControlWidth = true; var playAll = Instantiate(buttonPrefab); playAll.SetParent(container.transform, false); playAll.GetComponent <UIDynamicButton>().label = "\u25B6 Seq"; playAll.GetComponent <UIDynamicButton>().button.onClick.AddListener(() => _animation.PlayAll()); playAll.GetComponent <LayoutElement>().preferredWidth = 0; playAll.GetComponent <LayoutElement>().flexibleWidth = 100; var playClip = Instantiate(buttonPrefab); playClip.SetParent(container.transform, false); playClip.GetComponent <UIDynamicButton>().label = "\u25B6 Clip"; playClip.GetComponent <UIDynamicButton>().button.onClick.AddListener(() => _animation.PlayClip(_animation.current, false)); playClip.GetComponent <LayoutElement>().preferredWidth = 0; playClip.GetComponent <LayoutElement>().flexibleWidth = 100; var stop = Instantiate(buttonPrefab); stop.SetParent(container.transform, false); stop.GetComponent <UIDynamicButton>().label = "\u25A0 Stop"; stop.GetComponent <UIDynamicButton>().button.onClick.AddListener(() => { if (_animation.isPlaying) { _animation.StopAll(); } else { _animation.ResetAll(); } }); stop.GetComponent <LayoutElement>().preferredWidth = 0; stop.GetComponent <LayoutElement>().flexibleWidth = 30; }