Created
March 14, 2018 23:32
-
-
Save hotcakesdeluxe/5555cd413fb3f3f466cda3b06ea096e4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Collections; | |
using System.Collections.Generic; | |
using UnityEngine; | |
using UnityEngine.Playables; | |
using UnityEngine.Timeline; | |
public class IntroCinematicCharacters : MonoBehaviour | |
{ | |
public PlayableDirector characterDirector; | |
public List<CharacterData> MeatTeam; | |
public List<CharacterData> VeggieTeam; | |
public List<Transform> MeatSpawn; | |
public List<Transform> VeggieSpawn; | |
public double MeatTime = 9.75; | |
public double VeggieTime = 13.5; | |
void Start() | |
{ | |
TimelineAsset timelineAsset = ScriptableObject.CreateInstance("TimelineAsset") as TimelineAsset; | |
timelineAsset.name = "characterTimeline"; | |
characterDirector.playableAsset = timelineAsset; | |
int meatSpawned = 0; | |
int veggieSpawned = 0; | |
foreach (User user in UserManager.instance.users) | |
{ | |
//veggie team | |
if (user.team == TeamManager.instance.teams[0]) | |
{ | |
GameObject veggieInstance = Instantiate(user.character.prefab, VeggieSpawn[veggieSpawned]) as GameObject; | |
veggieSpawned++; | |
veggieInstance.GetComponent<CharacterObject>().Initialize(user); | |
//adding timeline stuff | |
AnimationTrack loserTrack = timelineAsset.CreateTrack<AnimationTrack>(null, "Loser Animation Track "); | |
characterDirector.SetGenericBinding(loserTrack, veggieInstance.GetComponent<CharacterObject>().meshObject); | |
//add clip from character data object to timeline at x seconds | |
TimelineClip timeClip = loserTrack.CreateClip(veggieInstance.GetComponent<CharacterObject>().character.introCinematicAnim); | |
timeClip.start = VeggieTime; | |
} | |
//meat team | |
else if (user.team == TeamManager.instance.teams[1]) | |
{ | |
GameObject meatInstance = Instantiate(user.character.prefab, MeatSpawn[meatSpawned]) as GameObject; | |
meatSpawned++; | |
meatInstance.GetComponent<CharacterObject>().Initialize(user); | |
//adding timeline stuff | |
AnimationTrack winnerTrack = timelineAsset.CreateTrack<AnimationTrack>(null, "Winner Animation Track "); | |
characterDirector.SetGenericBinding(winnerTrack, meatInstance.GetComponent<CharacterObject>().meshObject); | |
//add clip from character data object to timeline at x seconds | |
TimelineClip timelineClip = winnerTrack.CreateClip(meatInstance.GetComponent<CharacterObject>().character.introCinematicAnim); | |
timelineClip.start = MeatTime; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment