Пример #1
0
    /***********************************************
    *  override
    ***********************************************/

    public override void OnTargetChange()
    {
        if (target == null)
        {
            PSLogger.Log("target is null");
            return;
        }

        EditorCurveBinding[] bindings = AnimationUtility.GetAnimatableBindings(target, target.transform.root.gameObject);

        List <EditorCurveBinding> list = new List <EditorCurveBinding> ();

        for (int i = 0; i < this.propertyMuscleName.Length; i++)
        {
            for (int j = 0; j < bindings.Length; j++)
            {
                if (bindings [j].propertyName == this.propertyMuscleName [i])
                {
                    bindings [j].path = "";
                    list.Add(bindings [j]);
                    break;
                }
            }
        }
        curveBindings = list.ToArray();
    }
Пример #2
0
    public void WriteMuscleValue(int index, float value)
    {
        if (curveBindings == null)
        {
            OnTargetChange();
        }

        if (clip == null || curveBindings == null)
        {
            PSLogger.Log("clip or curveBindings is null");
            return;
        }

        Undo.RecordObject(clip, clip.name);

        if (muscleToggle [index])
        {
            this.SetEditorCurve(curveBindings [index], value);
        }
        else
        {
            AnimationUtility.SetEditorCurve(clip, curveBindings [index], null);
        }

        ResampleAnimation();
    }
Пример #3
0
        protected override void BeginProcessing()
        {
            base.BeginProcessing();

            Logger = new PSLogger(this);

            XrmConnectionManager xrmConnection = new XrmConnectionManager(
                Logger);

            OrganizationService = xrmConnection.Connect(
                ConnectionString,
                Timeout);
        }
Пример #4
0
    public override void OnUpdateValue()
    {
        if (target == null || clip == null)
        {
            PSLogger.Log("target is null");
            return;
        }


        this.muscleToggle = new bool[this.muscleCount];
        this.muscleValue  = new float[this.muscleCount];
        rootValue         = new float[PSMuscleDefine.rootProperty.Length];
        rootToggle        = new bool[PSMuscleDefine.rootProperty.Length];
        rootT             = false;
        rootQ             = false;

        foreach (EditorCurveBinding binding in AnimationUtility.GetCurveBindings(clip))
        {
            //Debug.Log(binding.propertyName);
            for (int i = 0; i < PSMuscleDefine.rootProperty.Length; i++)
            {
                if (binding.propertyName == PSMuscleDefine.rootProperty [i])
                {
                    AnimationUtility.GetFloatValue(target, binding, out rootValue [i]);
                    rootToggle [i] = true;
                    if (i < 3)
                    {
                        rootT = true;
                    }
                    else
                    {
                        rootQ = true;
                    }
                    break;
                }
            }

            for (int i = 0; i < this.propertyMuscleName.Length; i++)
            {
                if (binding.propertyName == this.propertyMuscleName [i])
                {
                    AnimationUtility.GetFloatValue(target, binding, out muscleValue [i]);
                    muscleToggle [i] = true;
                    break;
                }
            }
        }
    }
Пример #5
0
    private void UpdateValue()
    {
        if (reflection == null)
        {
            reflection = PSReflectionFactory.GetInstance().GetReflection();
        }

        if (reflection == null)
        {
            return;
        }

        GameObject newTarget = reflection.GetRootObject();

        if (!IsValidTarget(newTarget))
        {
            target = null;
            return;
        }

        if (newTarget != target)
        {
            target = newTarget;
            tabMuscle.SetTarget(target);
            muscleHandle.SetTarget(target);

            PSLogger.Log("New Target");
        }

        clip  = reflection.GetClip();
        time  = reflection.GetTime();
        frame = reflection.GetFrame();

        tabMuscle.SetClip(clip);
        tabMuscle.SetTimeFrame(time, frame);

        if (AnimationMode.InAnimationMode() && !onFocus)
        {
            tabMuscle.OnUpdateValue();
            //tabMuscle.ResampleAnimation();
        }
    }