private void CreateSlide() { if (!presentationManager) { EditorUtility.DisplayDialog("Error", "please press setup button first", "OK"); return; } CreateSlidesFolder(); GameObject s = new GameObject(slideName, typeof(PresentationSlide)); s.transform.SetParent(presentationManager.transform); Undo.RegisterCreatedObjectUndo(s, "PresentationSlide Create"); AssetDatabase.CreateAsset(TimelineAsset.CreateInstance(typeof(TimelineAsset)), "Assets/SlidesTimeLine/" + slideName + ".playable"); if (!playableDirector.GetComponent <Animator>()) { playableDirector.gameObject.AddComponent <Animator>(); } playableDirector.playableAsset = AssetDatabase.LoadAssetAtPath("Assets/SlidesTimeLine/" + slideName + ".playable", typeof(TimelineAsset)) as PlayableAsset; // Add Animation Track TrackAsset t = (playableDirector.playableAsset as TimelineAsset).CreateTrack(typeof(AnimationTrack), null, ""); playableDirector.SetGenericBinding(t, playableDirector.GetComponent <Animator>()); // Fetch Slides presentationManager.FindAllSlide(); // Add the new timeline to presentation manager presentationManager.AddNewSlideTimeLine(playableDirector.playableAsset); }
public void NextMove() { var dirTime = _director.time; if (dirTime < 159) { foreach (var timing in _timingList) { if (timing > dirTime) { if (_director.GetComponent <PauseController>().TimelineWasPaused()) { Button1.SetActive(true); Button2.SetActive(false); } _director.time = timing; stopTimeline._firstTimeLineWasPaused = false; _director.GetComponent <AudioSource>().Stop(); _director.playableGraph.GetRootPlayable(0).SetSpeed(1); break; } } } }
public void CreateSlide(string slideName) { CreateSlidesFolder(); GameObject s = new GameObject(slideName, typeof(PresentationSlide)); s.transform.SetParent(transform); Undo.RegisterCreatedObjectUndo(s, "PresentationSlide Create"); AssetDatabase.CreateAsset(TimelineAsset.CreateInstance(typeof(TimelineAsset)), "Assets/SlidesTimeLine/" + slideName + ".playable"); if (!timelineDirector.GetComponent <Animator>()) { timelineDirector.gameObject.AddComponent <Animator>(); } timelineDirector.playableAsset = AssetDatabase.LoadAssetAtPath("Assets/SlidesTimeLine/" + slideName + ".playable", typeof(TimelineAsset)) as PlayableAsset; // Add Animation Track TrackAsset t = (timelineDirector.playableAsset as TimelineAsset).CreateTrack(typeof(AnimationTrack), null, ""); timelineDirector.SetGenericBinding(t, timelineDirector.GetComponent <Animator>()); // Fetch Slides FindAllSlide(); // Add the new timeline to presentation manager AddNewSlideTimeLine(timelineDirector.playableAsset); }
private void Bind(PlayableDirector VFX) { Animator animator = VFX.GetComponent <Animator>(); var animationBinding = VFX.playableAsset.outputs.First(c => c.streamName == "Animation Track"); VFX.SetGenericBinding(animationBinding.sourceObject, animator); AudioSource audioSource = VFX.GetComponent <AudioSource>(); var audioSourceBinding = VFX.playableAsset.outputs.First(c => c.streamName == "Audio Track"); VFX.SetGenericBinding(audioSourceBinding.sourceObject, animator); }
private void OnTriggerEnter(Collider other) { if (other.tag == "Player") { myDirector.GetComponent <PlayableAsset>(); myDirector.Play(); } }
// Start is called before the first frame update void Start() { currentDirector = currentDirector.GetComponent <PlayableDirector>(); director1 = director1.GetComponent <PlayableDirector>(); character = GetComponent <CharacterScriptv1>(); cutscene1 = GameObject.Find("Cutscene1Cameras"); cutscene2 = GameObject.Find("Cutscene2Cameras"); cutscene3 = GameObject.Find("Cutscene3Cameras"); //currentDirector = director1; }
private void Start() { capsuleColl = GetComponent <CapsuleCollider>(); capsuleColl.isTrigger = true; // 다른 Scene에 있는 플레이어 GO를 찾아, 플레이어 GO를 필요로 하는 // 타임라인(실질적으로는 Playable Director 컴포넌트)에 바인딩. if (GameObject.FindWithTag("Player")) { GameObject player = GameObject.FindWithTag("Player"); // 오두막 안으로 들어가는 타임라인부터 할당. // 트랙 정보는 Timeline에 있기 때문에 PlayableDirector 컴포넌트에서 할당되어 있는 TimelineAsset을 가져온다. // PlayableAsset 클래스가 TimelineAsset의 부모(슈퍼) 클래스이기 때문에 형변환 가능. TimelineAsset tmp = comeIn.playableAsset as TimelineAsset; // PlayableDirector.SetGenericBindding(a, b) a = 오브젝트(b)를 바인딩할 트랙, b = 트랙(a)에 바인딩할 오브젝트. // TimelineAsset.GetOutputTrack(n) n = 타임라인에 있는 n+1번째 트랙을 반환한다. (인덱스는 0부터 시작하니깐) comeIn.SetGenericBinding(tmp.GetOutputTrack(2), player); // 오두막 밖으로 나가는 타임라인에 할당. tmp = comeOut.playableAsset as TimelineAsset; comeOut.SetGenericBinding(tmp.GetOutputTrack(0), player); // 보스와 닥터 타임라인에 할당. tmp = timeline.playableAsset as TimelineAsset; timeline.SetGenericBinding(tmp.GetOutputTrack(2), player.GetComponentInChildren <Camera>().gameObject); } if (comeIn.GetComponent <QuickOutline>()) { leftOutline = comeIn.GetComponent <QuickOutline>(); } if (comeOut.GetComponent <QuickOutline>()) { rightOutline = comeOut.GetComponent <QuickOutline>(); } forwardTrigger.SetActive(false); }
public void OpenAnimation(PlayableDirector dir) { if (director) { return; } director = Instantiate(dir); director.gameObject.SetActive(true); sRigidBody.useGravity = false; sRigidBody.isKinematic = true; sCapsuleCollider.enabled = false; director.Play(); director.extrapolationMode = DirectorWrapMode.Loop; if (director.GetComponent <Camera>()) { director.GetComponent <Camera>().enabled = false; } if (director.GetComponent <AudioListener>()) { director.GetComponent <AudioListener>().enabled = false; } isAniamtion = true; }
static void DoPlayTimeline(PlayableDirector playableDirector, GameObject player) { player.SetActive(false); var bindingDic = playableDirector.playableAsset.outputs; bindingDic.ForEach(delegate(PlayableBinding playableBinding) { if (playableBinding.outputTargetType == typeof(Animator)) { if (playableBinding.sourceObject != null) { playableDirector.GetComponent <PlayableDirectorHelper>().BindPlayer(player); } playableDirector.SetGenericBinding(playableBinding.sourceObject, player); } }); }
// Use this for initialization void Start() { timeline = timeline.GetComponent <PlayableDirector>(); }
public override void OnPlayableCreate(Playable playable) { director = (playable.GetGraph().GetResolver() as PlayableDirector); events = director.GetComponent <TimelineControllerEvents>(); }
// Start is called before the first frame update void Start() { updatePosition = updatePosition.GetComponent <CutSceneMovement>(); director = director.GetComponent <PlayableDirector>(); }
void OnEnable() { _mainAudioSource = director.GetComponent <AudioSource>(); _pauseController = director.GetComponent <PauseController>(); }
void OnEnable() { _pauseController = director.GetComponent <PauseController>(); }