public void GenerateMoveClip(PlayableDirector director, int trackIndex)
    {
        List <CurvePoint> points = GetPointsInScene();

        if (points.Count <= 0)
        {
            return;
        }
        string        errorLog = "";
        TimelineAsset asset    = director.playableAsset as TimelineAsset;
        TrackAsset    track    = asset.GetOutputTrack(trackIndex);

        if (track == null)
        {
            errorLog = "Track Index Error";
        }
        if (!(track is RoleMoveTrack))
        {
            errorLog = "Track 类型错误,不是RoleMoveTrack";
        }
        if (string.IsNullOrEmpty(errorLog))
        {
            List <Vector3> pointsPos = points.Select(point => point.transform.position).ToList();
            TimelineClip   clip      = track.CreateDefaultClip();
            RoleMoveClip   moveclip  = clip.asset as RoleMoveClip;
            moveclip.points   = pointsPos;
            moveclip.roleData = director.GetGenericBinding(track) as RoleData;
        }
        else
        {
            Debug.LogError(errorLog);
        }
    }
Example #2
0
    protected override Playable CreatePlayable(PlayableGraph graph, GameObject go, TimelineClip clip)
    {
        PlayableDirector director = go.GetComponent <PlayableDirector>();
        RoleMoveClip     moveClip = clip.asset as RoleMoveClip;

        moveClip.roleData = (RoleData)director.GetGenericBinding(clip.parentTrack);
        Playable playable = base.CreatePlayable(graph, go, clip);

        return(playable);
    }