Пример #1
0
 void Awake()
 {
     Target = (MotionEditor)target;
     Target.Refresh();
     ApplyFilter();
     Timestamp = Utility.GetTimestamp();
     EditorApplication.update += EditorUpdate;
 }
Пример #2
0
 void Awake()
 {
     Target = (MotionEditor)target;
     Target.Cleanup();
     GenerateNames();
     Timestamp = Utility.GetTimestamp();
     EditorApplication.update += EditorUpdate;
 }
Пример #3
0
	void Awake ()
	{
		st_Manager = gameObject.GetComponent<MotionManager>();
		gameObject.AddComponent<MotionEditor>();
		st_Editor = gameObject.GetComponent<MotionEditor>();
		rootDirectory = Application.dataPath + "/Resources";
		
	}
Пример #4
0
    public override void Identity(MotionEditor editor)
    {
        Matrix4x4 t = GetRawTransformation(editor.GetCurrentFrame(), editor.Mirror);

        transform.position   = t.GetPosition();
        transform.rotation   = t.GetRotation();
        transform.localScale = t.GetScale();
    }
Пример #5
0
 public void Draw(MotionEditor editor)
 {
     if (Visualize)
     {
         ExtractSeries(editor.GetTimeSeries(), editor.GetCurrentFrame().Timestamp, editor.Mirror).Draw();
         DerivedDraw(editor);
     }
 }
Пример #6
0
 public static MotionEditor GetInstance()
 {
     if (Instance == null)
     {
         Instance = GameObject.FindObjectOfType <MotionEditor>();
     }
     return(Instance);
 }
Пример #7
0
 public State(MotionExporter exporter, MotionEditor editor)
 {
     Timestamp  = editor.GetCurrentFrame().Timestamp;
     Root       = editor.GetCurrentFrame().GetRootTransformation(editor.Mirror);
     Posture    = editor.GetCurrentFrame().GetBoneTransformations(editor.Mirror);
     Velocities = editor.GetCurrentFrame().GetBoneVelocities(editor.Mirror);
     Trajectory = ((TrajectoryModule)editor.GetCurrentFile().Data.GetModule(Module.TYPE.Trajectory)).GetTrajectory(editor.GetCurrentFrame(), editor.Mirror);
 }
Пример #8
0
 void Awake()
 {
     Target = (MotionEditor)target;
     Target.Initialise();
     Filter();
     Timestamp = Utility.GetTimestamp();
     EditorApplication.update += EditorUpdate;
 }
Пример #9
0
 protected override void DerivedInspector(MotionEditor editor)
 {
     Sensor     = EditorGUILayout.Popup("Sensor", Sensor, Names);
     Axis       = (MotionData.AXIS)EditorGUILayout.EnumPopup("Axis", Axis);
     Resolution = EditorGUILayout.IntField("Resolution", Resolution);
     Size       = EditorGUILayout.FloatField("Size", Size);
     Distance   = EditorGUILayout.FloatField("Distance", Distance);
     Mask       = InternalEditorUtility.ConcatenatedLayersMaskToLayerMask(EditorGUILayout.MaskField("Mask", InternalEditorUtility.LayerMaskToConcatenatedLayersMask(Mask), InternalEditorUtility.layers));
 }
Пример #10
0
    private IEnumerator ExportInputLabels()
    {
        MotionEditor editor = Editors[0];

        Exporting = true;

        StreamWriter file = CreateFile("InputLabels");

        int index = 0;

        for (int i = 1; i <= 12; i++)
        {
            file.WriteLine(index + " " + "TrajectoryPositionX" + i); index  += 1;
            file.WriteLine(index + " " + "TrajectoryPositionZ" + i); index  += 1;
            file.WriteLine(index + " " + "TrajectoryDirectionX" + i); index += 1;
            file.WriteLine(index + " " + "TrajectoryDirectionZ" + i); index += 1;
            file.WriteLine(index + " " + "TrajectoryVelocityX" + i); index  += 1;
            file.WriteLine(index + " " + "TrajectoryVelocityZ" + i); index  += 1;
            for (int j = 0; j < Styles.Length; j++)
            {
                file.WriteLine(index + " " + Styles[j] + i); index += 1;
            }
        }
        for (int i = 0; i < editor.GetCurrentFile().Data.Source.Bones.Length; i++)
        {
            if (editor.GetCurrentFile().Data.Source.Bones[i].Active)
            {
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "PositionX"); index += 1;
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "PositionY"); index += 1;
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "PositionZ"); index += 1;
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "ForwardX"); index  += 1;
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "ForwardY"); index  += 1;
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "ForwardZ"); index  += 1;
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "UpX"); index       += 1;
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "UpY"); index       += 1;
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "UpZ"); index       += 1;
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "VelocityX"); index += 1;
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "VelocityY"); index += 1;
                file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "VelocityZ"); index += 1;
            }
        }

        for (int k = 1; k <= 7; k++)
        {
            for (int i = 1; i <= Styles.Length; i++)
            {
                file.WriteLine(index + " " + Styles[i - 1] + "X" + k); index += 1;
                file.WriteLine(index + " " + Styles[i - 1] + "Y" + k); index += 1;
            }
        }

        yield return(new WaitForSeconds(0f));

        file.Close();

        Exporting = false;
    }
Пример #11
0
    public override void Identity(MotionEditor editor)
    {
        Vector3 scale = transform.localScale;

        scale.x = Mathf.Abs(scale.x);
        scale.y = Mathf.Abs(scale.y);
        scale.z = Mathf.Abs(scale.z);
        transform.localScale = scale;
    }
Пример #12
0
    private IEnumerator ExportOutputLabels()
    {
        MotionEditor editor = Editors[0];

        if (editor == null)
        {
            Debug.Log("No editor found.");
        }
        else
        {
            Exporting = true;

            StreamWriter file = CreateFile("OutputLabels");

            int index = 0;
            for (int i = 7; i <= 12; i++)
            {
                file.WriteLine(index + " " + "TrajectoryPositionX" + i); index  += 1;
                file.WriteLine(index + " " + "TrajectoryPositionZ" + i); index  += 1;
                file.WriteLine(index + " " + "TrajectoryDirectionX" + i); index += 1;
                file.WriteLine(index + " " + "TrajectoryDirectionZ" + i); index += 1;
                file.WriteLine(index + " " + "TrajectoryVelocityX" + i); index  += 1;
                file.WriteLine(index + " " + "TrajectoryVelocityZ" + i); index  += 1;
                for (int j = 0; j < Styles.Length; j++)
                {
                    file.WriteLine(index + " " + Styles[j] + i); index += 1;
                }
            }
            for (int i = 0; i < editor.GetCurrentFile().Data.Source.Bones.Length; i++)
            {
                if (editor.GetCurrentFile().Data.Source.Bones[i].Active)
                {
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "PositionX" + (i + 1)); index += 1;
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "PositionY" + (i + 1)); index += 1;
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "PositionZ" + (i + 1)); index += 1;
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "ForwardX" + (i + 1)); index  += 1;
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "ForwardY" + (i + 1)); index  += 1;
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "ForwardZ" + (i + 1)); index  += 1;
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "UpX" + (i + 1)); index       += 1;
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "UpY" + (i + 1)); index       += 1;
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "UpZ" + (i + 1)); index       += 1;
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "VelocityX" + (i + 1)); index += 1;
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "VelocityY" + (i + 1)); index += 1;
                    file.WriteLine(index + " " + editor.GetActor().Bones[i].GetName() + "VelocityZ" + (i + 1)); index += 1;
                }
            }

            file.WriteLine(index + " " + "PhaseUpdate"); index += 1;

            yield return(new WaitForSeconds(0f));

            file.Close();

            Exporting = false;
        }
    }
Пример #13
0
 public override void DerivedInspector(MotionEditor editor)
 {
     RightShoulder = EditorGUILayout.Popup("Right Shoulder", RightShoulder, Data.Root.GetBoneNames());
     LeftShoulder  = EditorGUILayout.Popup("Left Shoulder", LeftShoulder, Data.Root.GetBoneNames());
     RightUpLeg    = EditorGUILayout.Popup("Right Up Leg", RightUpLeg, Data.Root.GetBoneNames());
     LeftUpLeg     = EditorGUILayout.Popup("Left Up Leg", LeftUpLeg, Data.Root.GetBoneNames());
     Neck          = EditorGUILayout.Popup("Neck", Neck, Data.Root.GetBoneNames());
     Hips          = EditorGUILayout.Popup("Hips", Hips, Data.Root.GetBoneNames());
     ForwardAxis   = (Axis)EditorGUILayout.EnumPopup("Forward Axis", ForwardAxis);
 }
Пример #14
0
        public State(MotionEditor editor)
        {
            MotionEditor.File file  = editor.GetCurrentFile();
            Frame             frame = editor.GetCurrentFrame();

            Root       = editor.GetActor().GetRoot().GetWorldMatrix();
            Posture    = editor.GetActor().GetPosture();
            Velocities = editor.GetActor().GetVelocities();
            Trajectory = ((TrajectoryModule)file.Data.GetModule(Module.TYPE.Trajectory)).GetTrajectory(frame, editor.Mirror);
        }
Пример #15
0
 public override void Callback(MotionEditor editor)
 {
     if (Blocked)
     {
         Identity(editor);
         return;
     }
     Random.InitState(editor.GetCurrentSeed());
     transform.localEulerAngles = Default + new Vector3(Random.Range(Min.x, Max.x), Random.Range(Min.y, Max.y), Random.Range(Min.z, Max.z));
 }
Пример #16
0
    protected override void DerivedInspector(MotionEditor editor)
    {
        ShowVelocities = EditorGUILayout.Toggle("Show Velocities", ShowVelocities);
        ShowCycle      = EditorGUILayout.Toggle("Show Cycle", ShowCycle);
        SetMaximumVelocity(EditorGUILayout.FloatField("Maximum Velocity", MaximumVelocity));
        SetVelocityThreshold(EditorGUILayout.FloatField("Velocity Threshold", VelocityThreshold));
        string[] names = new string[1 + Data.Source.Bones.Length];
        names[0] = "Select...";
        for (int i = 0; i < names.Length - 1; i++)
        {
            names[i + 1] = Data.Source.Bones[i].Name;
        }
        int index = EditorGUILayout.Popup("Phase Detector", 0, names);

        if (index > 0)
        {
            ToggleVariable(index - 1);
        }
        for (int i = 0; i < Data.Source.Bones.Length; i++)
        {
            if (Variables[i])
            {
                using (new EditorGUILayout.VerticalScope("Box")) {
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField(Data.Source.Bones[i].Name);
                    EditorGUILayout.LabelField(Data.Source.Bones[Data.Symmetry[i]].Name);
                    EditorGUILayout.EndHorizontal();
                }
            }
        }
        Utility.SetGUIColor(UltiDraw.Grey);
        using (new EditorGUILayout.VerticalScope("Box")) {
            Utility.ResetGUIColor();
            if (Optimising)
            {
                if (Utility.GUIButton("Stop Optimisation", UltiDraw.LightGrey, UltiDraw.Black))
                {
                    EditorCoroutines.StopCoroutine(RegularPhaseFunction.Optimise(), this);
                    EditorCoroutines.StopCoroutine(InversePhaseFunction.Optimise(), this);
                    Optimising = false;
                }
            }
            else
            {
                if (Utility.GUIButton("Start Optimisation", UltiDraw.DarkGrey, UltiDraw.White))
                {
                    EditorCoroutines.StartCoroutine(RegularPhaseFunction.Optimise(), this);
                    EditorCoroutines.StartCoroutine(InversePhaseFunction.Optimise(), this);
                    Optimising = true;
                }
            }
        }
        RegularPhaseFunction.Inspector(editor);
        InversePhaseFunction.Inspector(editor);
    }
 //Optional inspector fields
 protected override void DerivedInspector(MotionEditor editor)
 {
     Ground           = InternalEditorUtility.ConcatenatedLayersMaskToLayerMask(EditorGUILayout.MaskField("Ground", InternalEditorUtility.LayerMaskToConcatenatedLayersMask(Ground), InternalEditorUtility.layers));
     LeftHip          = EditorGUILayout.Popup("Left Hip", LeftHip, Data.Source.GetBoneNames());
     LeftAnkle        = EditorGUILayout.Popup("Left Ankle", LeftAnkle, Data.Source.GetBoneNames());
     RightHip         = EditorGUILayout.Popup("Right Hip", RightHip, Data.Source.GetBoneNames());
     RightAnkle       = EditorGUILayout.Popup("Right Ankle", RightAnkle, Data.Source.GetBoneNames());
     GroundProjection = (Projection)EditorGUILayout.EnumPopup("Ground Projection", GroundProjection);
     RootAdjustment   = EditorGUILayout.Toggle("Root Adjustment", RootAdjustment);
     FixBending       = EditorGUILayout.Toggle("Fix Bending", false);
 }
Пример #18
0
    public override void DerivedInspector(MotionEditor editor)
    {
        ShowVelocities    = EditorGUILayout.Toggle("Show Velocities", ShowVelocities);
        ShowPositions     = EditorGUILayout.Toggle("Show Positions", ShowPositions);
        ShowKeys          = EditorGUILayout.Toggle("Show Keys", ShowKeys);
        Window            = EditorGUILayout.FloatField("Window Time", Window);
        VelocityThreshold = EditorGUILayout.FloatField("Velocity Threshold", VelocityThreshold);
        PositionThreshold = EditorGUILayout.FloatField("Position Threshold", PositionThreshold);

        if (Phases[0] == null || Phases[0].LocalPhase == null || Record != Data.Mirrored)
        {
            Phases[0] = new LocalPhaseFunction("Head", new int[2] {
                4, 5
            }, this);
            if (Data.Mirrored)
            {
                Phases[1] = new LocalPhaseFunction("Left Hand", new int[5] {
                    7, 8, 9, 10, 11
                }, this);
                Phases[2] = new LocalPhaseFunction("Right Hand", new int[5] {
                    12, 13, 14, 15, 16
                }, this);
            }
            else
            {
                Phases[1] = new LocalPhaseFunction("Left Hand", new int[5] {
                    12, 13, 14, 15, 16
                }, this);
                Phases[2] = new LocalPhaseFunction("Right Hand", new int[5] {
                    7, 8, 9, 10, 11
                }, this);
            }
            Record = Data.Mirrored;
            Compute();
        }

        if (GUILayout.Button("Compute"))
        {
            Compute();
        }

        for (int i = 0; i < Phases.Length; i++)
        {
            EditorGUILayout.BeginHorizontal();
            Phases[i].Visiable = EditorGUILayout.Toggle(Phases[i].Visiable, GUILayout.Width(20.0f));
            EditorGUILayout.LabelField(Phases[i].Name);
            EditorGUILayout.EndHorizontal();

            if (Phases[i].Visiable)
            {
                Phases[i].LocalPhase.Inspector(editor);
            }
        }
    }
Пример #19
0
 protected override void DerivedInspector(MotionEditor editor)
 {
     Size             = EditorGUILayout.Vector3Field("Size", Size);
     Resolution       = EditorGUILayout.Vector3IntField("Resolution", Resolution);
     Mask             = InternalEditorUtility.ConcatenatedLayersMaskToLayerMask(EditorGUILayout.MaskField("Mask", InternalEditorUtility.LayerMaskToConcatenatedLayersMask(Mask), InternalEditorUtility.layers));
     Color            = EditorGUILayout.ColorField("Color", Color);
     DrawReferences   = EditorGUILayout.Toggle("Draw References", DrawReferences);
     DrawDistribution = EditorGUILayout.Toggle("Draw Distribution", DrawDistribution);
     Rect.Inspector();
     EditorGUILayout.LabelField("Samples: " + 0);
 }
Пример #20
0
        public State(MotionEditor editor)
        {
            MotionEditor.File file  = editor.GetCurrentFile();
            Frame             frame = editor.GetCurrentFrame();

            Timestamp  = frame.Timestamp;
            Root       = frame.GetRootTransformation(editor.Mirror);
            Posture    = frame.GetBoneTransformations(editor.Mirror);
            Velocities = frame.GetBoneVelocities(editor.Mirror);
            Trajectory = ((TrajectoryModule)file.Data.GetModule(Module.TYPE.Trajectory)).GetTrajectory(frame, editor.Mirror);
            HeightMap  = ((HeightMapModule)file.Data.GetModule(Module.TYPE.HeightMap)).GetHeightMap(frame, editor.Mirror);
        }
Пример #21
0
 protected override void DerivedInspector(MotionEditor editor)
 {
     Size             = EditorGUILayout.FloatField("Size", Size);
     Resolution       = Mathf.Clamp(EditorGUILayout.IntField("Resolution", Resolution), 1, 25);
     Layers           = Mathf.Clamp(EditorGUILayout.IntField("Layers", Layers), 1, 25);
     Overlap          = EditorGUILayout.Toggle("Overlap", Overlap);
     Mask             = InternalEditorUtility.ConcatenatedLayersMaskToLayerMask(EditorGUILayout.MaskField("Mask", InternalEditorUtility.LayerMaskToConcatenatedLayersMask(Mask), InternalEditorUtility.layers));
     Color            = EditorGUILayout.ColorField("Color", Color);
     DrawReferences   = EditorGUILayout.Toggle("Draw References", DrawReferences);
     DrawDistribution = EditorGUILayout.Toggle("Draw Distribution", DrawDistribution);
     EditorGUILayout.LabelField("Samples: " + Samples);
 }
Пример #22
0
 protected override void DerivedInspector(MotionEditor editor)
 {
     Topology      = (TOPOLOGY)EditorGUILayout.EnumPopup("Topology", Topology);
     RightShoulder = EditorGUILayout.Popup("Right Shoulder", RightShoulder, Data.Source.GetBoneNames());
     LeftShoulder  = EditorGUILayout.Popup("Left Shoulder", LeftShoulder, Data.Source.GetBoneNames());
     RightHip      = EditorGUILayout.Popup("Right Hip", RightHip, Data.Source.GetBoneNames());
     LeftHip       = EditorGUILayout.Popup("Left Hip", LeftHip, Data.Source.GetBoneNames());
     Neck          = EditorGUILayout.Popup("Neck", Neck, Data.Source.GetBoneNames());
     Hips          = EditorGUILayout.Popup("Hips", Hips, Data.Source.GetBoneNames());
     ForwardAxis   = (Axis)EditorGUILayout.EnumPopup("Forward Axis", ForwardAxis);
     Ground        = InternalEditorUtility.ConcatenatedLayersMaskToLayerMask(EditorGUILayout.MaskField("Ground Mask", InternalEditorUtility.LayerMaskToConcatenatedLayersMask(Ground), InternalEditorUtility.layers));
 }
Пример #23
0
 public override void Callback(MotionEditor editor)
 {
     if (Blocked)
     {
         Identity(editor);
         return;
     }
     Random.InitState(editor.GetCurrentSeed());
     transform.localPosition    = DefaultPosition + Utility.UniformVector3(MinPositionNoise, MaxPositionNoise);
     transform.localEulerAngles = DefaultRotation + Utility.UniformVector3(MinRotationNoise, MaxRotationNoise);
     transform.localScale       = Vector3.Scale(DefaultScale, Utility.UniformVector3(MinScaleNoise, MaxScaleNoise));
 }
    //Optional scene drawing function
    protected override void DerivedDraw(MotionEditor editor)
    {
        UltiDraw.Begin();

        Transform leftAnkle  = editor.GetActor().FindTransform(Data.Source.Bones[LeftAnkle].Name);
        Transform rightAnkle = editor.GetActor().FindTransform(Data.Source.Bones[RightAnkle].Name);

        UltiDraw.DrawWireCircle(leftAnkle.position, 0.08f, Color.red);
        UltiDraw.DrawWireCircle(rightAnkle.position, 0.08f, Color.red);

        UltiDraw.End();
    }
Пример #25
0
    private float Speed(float timestamp, bool mirrored)
    {
        float power = ContactPower(timestamp, mirrored);

        SmoothingWindow = SmoothingWindow == null?Data.GetTimeWindow(MotionEditor.GetInstance().PastWindow + MotionEditor.GetInstance().FutureWindow, 1f) : SmoothingWindow;

        SmoothingSpeeds = SmoothingSpeeds.Validate(SmoothingWindow.Length);
        for (int i = 0; i < SmoothingSpeeds.Length; i++)
        {
            SmoothingSpeeds[i] = Mathf.Abs(GetBallVelocity(timestamp + SmoothingWindow[i], mirrored).y);
        }
        return(SmoothingSpeeds.Gaussian(power));
    }
Пример #26
0
    public override void Callback(MotionEditor editor)
    {
        if (Blocked)
        {
            Identity(editor);
            return;
        }
        Random.InitState(editor.GetCurrentSeed());
        int         index = editor.GetCurrentSeed() % transform.childCount;
        RescaleInfo info  = transform.GetChild(index).GetComponent <RescaleInfo>();

        transform.localScale = info == null ? Default : Vector3.Scale(Default, Utility.UniformVector3(info.Min, info.Max));
    }
Пример #27
0
    public override void Callback(MotionEditor editor)
    {
        if (Blocked)
        {
            Identity(editor);
            return;
        }
        Matrix4x4 t = GetTransformation(editor.GetCurrentFrame(), editor.Mirror);

        transform.position   = t.GetPosition();
        transform.rotation   = t.GetRotation();
        transform.localScale = t.GetScale();
    }
Пример #28
0
    private float Height(float timestamp, bool mirrored)
    {
        float power = ContactPower(timestamp, mirrored);

        SmoothingWindow = SmoothingWindow == null?Data.GetTimeWindow(MotionEditor.GetInstance().PastWindow + MotionEditor.GetInstance().FutureWindow, 1f) : SmoothingWindow;

        SmoothingHeights = SmoothingContacts.Validate(SmoothingWindow.Length);
        for (int i = 0; i < SmoothingHeights.Length; i++)
        {
            SmoothingHeights[i] = GetBallPosition(timestamp + SmoothingWindow[i], mirrored).y;
        }
        return(SmoothingHeights.Gaussian(power));
    }
Пример #29
0
        public void LoadPreviousAsset()
        {
            int pivot = MotionEditor.FindIndex(Assets, Utility.GetAssetGUID(Target.Data));

            if (pivot > 0)
            {
                Target.LoadData(Assets[Mathf.Max(pivot - 1, 0)]);

                // if(Target.GetAsset().GetTotalTime() < 5f) {
                //  LoadPreviousAsset();
                // }
            }
        }
Пример #30
0
        public void LoadNextAsset()
        {
            int pivot = MotionEditor.FindIndex(Assets, Utility.GetAssetGUID(Target.Data));

            if (pivot < Assets.Length - 1)
            {
                Target.LoadData(Assets[Mathf.Min(pivot + 1, Assets.Length - 1)]);

                // if(Target.GetAsset().GetTotalTime() < 5f) {
                //  LoadNextAsset();
                // }
            }
        }
Пример #31
0
    protected override void DerivedDraw(MotionEditor editor)
    {
        DistanceMap sensor = GetDistanceMap(editor.GetCurrentFrame(), editor.Mirror);

        sensor.Draw(Color);
        if (DrawReferences)
        {
            sensor.DrawReferences();
        }
        if (DrawDistribution)
        {
            sensor.DrawDistribution(Color, Rect);
        }
    }
Пример #32
0
 public static void Show(MotionEditor _editor)
 {
     MotionBuilder window = (MotionBuilder)EditorWindow.GetWindow(typeof(MotionBuilder));
     window.editor = _editor;
 }