Exemple #1
0
        //----- method -----

        public ExposedReferenceResolver(PlayableDirector playableDirector, ExposedReference <T> reference)
        {
            this.playableDirector = playableDirector;
            this.reference        = reference;

            Resolve();
        }
        public static ExposedReference <T> DrawExposed(CutscenePlayer player, ExposedReference <T> value, GUIContent name,
                                                       Rect rect)
        {
            GUI.enabled = player != null;
            var found  = value.Resolve(player);
            var label  = GetLabel(found, value.exposedName, name);
            var chosen = EditorGUI.ObjectField(rect, label, found, ReferenceType, true);

            GUI.enabled = true;

            if (player == null || chosen == found)
            {
                return(value);
            }
            //Remove old
            player.SetReferenceValue(value.exposedName, null);
            //If there is a new one, add it
            if (chosen != null)
            {
                var newId = chosen.GetInstanceID().ToString();
                value.exposedName = newId;
                player.SetReferenceValue(newId, chosen);
            }
            return(value);
        }
    public void Play()
    {
        mControl.transform.position          = playerControl.transform.position + playerControl.transform.rotation * offsetPos;
        mControl.transform.rotation          = Quaternion.LookRotation(playerControl.transform.position - mControl.transform.position);
        mControl.transform.localEulerAngles += offsetRot;


        mKillInfo.gameObject.SetActive(true);
        mDirector.Play();

        mDirector.SetGenericBinding(bindingDict["Player"].sourceObject, playerControl.mAim);
        mDirector.SetGenericBinding(bindingDict["Enemy"].sourceObject, mControl.mAim);
        mDirector.SetGenericBinding(bindingDict["Cinemachine"].sourceObject, Camera.main.GetComponent <Cinemachine.CinemachineBrain>());
        var CinemachineTrack = bindingDict["Cinemachine"].sourceObject as Cinemachine.Timeline.CinemachineTrack;

        foreach (var info in CinemachineTrack.GetClips())
        {
            if (info.displayName == "CinemachineShot")
            {
                var cameraInfo = info.asset as Cinemachine.Timeline.CinemachineShot;
                var vcam1      = GameObject.Find("CM vcam1").GetComponent <CinemachineVirtualCameraBase>();
                var setCam     = new ExposedReference <CinemachineVirtualCameraBase>();
                setCam.defaultValue      = vcam1;
                cameraInfo.VirtualCamera = setCam;
            }

            if (info.displayName == "CM vcam2")
            {
                var cameraInfo = info.asset as Cinemachine.Timeline.CinemachineShot;
                var vcam2      = cameraInfo.VirtualCamera.Resolve(mDirector.playableGraph.GetResolver());
                vcam2.LookAt = mControl.transform.Find("Tran_Chest").transform;
                vcam2.Follow = mControl.transform;
            }
        }
    }
            public void Setup(PlayableDirector playableDirector)
            {
                TargetObject = new ExposedReferenceResolver <GameObject>(playableDirector, targetObject);

                TargetObject.OnUpdateReferenceAsObservable()
                .Subscribe(x => targetObject = x)
                .AddTo(Disposable);
            }
        //Can be used to unlink an exposedReference after duplicating it.
        internal static void RecreateReferenceInEditor <T>(ref ExposedReference <T> exposedRef,
                                                           IExposedPropertyTable table) where T : Object
        {
            T obj = exposedRef.Resolve(table);

            exposedRef.exposedName = GUID.Generate().ToString();
            table.SetReferenceValue(exposedRef.exposedName, obj);
        }
Exemple #6
0
        public override void Serialize(ExposedReference <T> value, string name, SerializedObject destination)
        {
            var obj = new SerializedObject();
            var id  = value.exposedName.GetHashCode();

            obj.SetInt(IdKey, id);
            obj.SetUnity(DefaultKey, value.defaultValue);
            destination.SetObject(name, obj);
        }
 internal static void SetReferenceValueInEditor <T>(ref ExposedReference <T> exposedRef,
                                                    IExposedPropertyTable propertyTable, T obj) where T : Object
 {
     //check if exposedName hasn't been initialized
     if (exposedRef.exposedName.ToString() == ":0")
     {
         exposedRef.exposedName = GUID.Generate().ToString();
     }
     propertyTable.SetReferenceValue(exposedRef.exposedName, obj);
 }
Exemple #8
0
        public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
        {
            var playable = ScriptPlayable <EventPlayableBehaviour> .Create(graph, inputCount : 0);

            this.behaviour           = playable.GetBehaviour();
            this.behaviour.recipient = recipient.Resolve(graph.GetResolver());
            this.behaviour.message   = message;
            this.behaviour.argument  = getArgument();

            return(playable);
        }
        //----- method -----

        public void Setup(PlayableDirector playableDirector)
        {
            InvokeTarget = new ExposedReferenceResolver <GameObject>(playableDirector, invokeTarget);

            InvokeTarget.OnUpdateReferenceAsObservable()
            .Subscribe(x => invokeTarget = x)
            .AddTo(Disposable);

            if (argumentObjects != null)
            {
                foreach (var argumentObject in argumentObjects)
                {
                    argumentObject.Setup(playableDirector);
                }
            }
        }
Exemple #10
0
        public IEnumerator TestTimelineTrack()
        {
            director.Play();
            exporter.MaxCaptureFrame = 30;
            yield return(RecordAlembic());

            deleteFileList.Add(exporter.Recorder.Settings.OutputPath);
            var go       = TestAbcImported(exporter.Recorder.Settings.OutputPath);
            var root     = PrefabUtility.InstantiatePrefab(go) as GameObject;
            var player   = root.GetComponent <AlembicStreamPlayer>();
            var timeline = director.playableAsset as TimelineAsset;
            var abcTrack = timeline.CreateTrack <AlembicTrack>(null, "");
            var clip     = abcTrack.CreateClip <AlembicShotAsset>();
            var abcAsset = clip.asset as AlembicShotAsset;
            var refAbc   = new ExposedReference <AlembicStreamPlayer> {
                exposedName = Guid.NewGuid().ToString()
            };

            abcAsset.StreamPlayer = refAbc;
            director.SetReferenceValue(refAbc.exposedName, player);
            director.RebuildGraph();
            var cubeGO = root.GetComponentInChildren <MeshRenderer>().gameObject;

            director.time = 0;
            director.Evaluate();
            yield return(null);

            var t0 = cubeGO.transform.position;

            director.time = player.Duration;
            director.Evaluate();
            yield return(null);

            var t1 = cubeGO.transform.position;

            Assert.AreNotEqual(t0, t1);
        }
 public override void Draw(CutsceneEditor editor, CutscenePlayer player, Cutscene cutscene, Rect rect, int tokenIndex, GUIContent name, ExposedReference <T> value, Type valueType, FieldInfo fieldInfo, Setter setter)
 {
     setter(DrawExposed(player, value, name, rect));
 }
Exemple #12
0
 public ExposedAtmosphericScatteringReferenceParameter(
     ExposedReference <AtmosphericScattering> value, bool overrideState = false)
     : base(value, overrideState)
 {
 }
Exemple #13
0
 public ExposedAutoFocusReferenceParameter(ExposedReference <DepthOfFieldAutoFocus> value, bool overrideState = false)
     : base(value, overrideState)
 {
 }
 public ExposedWindControlReferenceParameter(ExposedReference <WindControl> value, bool overrideState = false)
     : base(value, overrideState)
 {
 }
Exemple #15
0
 public ExposedLightReferenceParameter(ExposedReference <Light> value, bool overrideState = false)
     : base(value, overrideState)
 {
 }
 public CullingParameter(ExposedReference <LayerCulling> value, bool overrideState = false)
     : base(value, overrideState)
 {
 }