示例#1
0
    private void UpdateSkeletonOptimization(Astra.BodyStream bodyStream)
    {
        if (ToggleOptimizationAccuracy != null &&
            ToggleOptimizationBalanced != null &&
            ToggleOptimizationMemory != null &&
            SliderOptimization != null)
        {
            int targetOptimizationValue = (int)_previousSkeletonOptimization;
            if (ToggleOptimizationAccuracy.isOn)
            {
                targetOptimizationValue = (int)Astra.SkeletonOptimization.BestAccuracy;
            }
            else if (ToggleOptimizationBalanced.isOn)
            {
                targetOptimizationValue = (int)Astra.SkeletonOptimization.Balanced;
            }
            else if (ToggleOptimizationMemory.isOn)
            {
                targetOptimizationValue = (int)Astra.SkeletonOptimization.MinimizeMemory;
            }

            if (targetOptimizationValue != (int)_previousSkeletonOptimization)
            {
                Debug.Log("Set optimization slider: " + targetOptimizationValue);
                SliderOptimization.value = targetOptimizationValue;
            }

            Astra.SkeletonOptimization targetSkeletonOptimization = Astra.SkeletonOptimization.Balanced;
            int sliderValue = (int)SliderOptimization.value;

            switch (sliderValue)
            {
            case 1:
                targetSkeletonOptimization = Astra.SkeletonOptimization.Optimization1;
                break;

            case 2:
                targetSkeletonOptimization = Astra.SkeletonOptimization.Optimization2;
                break;

            case 3:
                targetSkeletonOptimization = Astra.SkeletonOptimization.Optimization3;
                break;

            case 4:
                targetSkeletonOptimization = Astra.SkeletonOptimization.Optimization4;
                break;

            case 5:
                targetSkeletonOptimization = Astra.SkeletonOptimization.Optimization5;
                break;

            case 6:
                targetSkeletonOptimization = Astra.SkeletonOptimization.Optimization6;
                break;

            case 7:
                targetSkeletonOptimization = Astra.SkeletonOptimization.Optimization7;
                break;

            case 8:
                targetSkeletonOptimization = Astra.SkeletonOptimization.Optimization8;
                break;

            case 9:
                targetSkeletonOptimization = Astra.SkeletonOptimization.Optimization9;
                break;

            default:
                targetSkeletonOptimization = Astra.SkeletonOptimization.Optimization9;
                SliderOptimization.value   = 9;
                break;
            }

            if (targetSkeletonOptimization != _previousSkeletonOptimization)
            {
                UpdateOptimizationToggles(targetSkeletonOptimization);

                Debug.Log("SetSkeletonOptimization: " + targetSkeletonOptimization);
                _previousSkeletonOptimization = targetSkeletonOptimization;
                bodyStream.SetSkeletonOptimization(targetSkeletonOptimization);
            }
        }
    }
示例#2
0
 private void UpdateOptimizationToggles(Astra.SkeletonOptimization optimization)
 {
     ToggleOptimizationMemory.isOn   = optimization == Astra.SkeletonOptimization.MinimizeMemory;
     ToggleOptimizationBalanced.isOn = optimization == Astra.SkeletonOptimization.Balanced;
     ToggleOptimizationAccuracy.isOn = optimization == Astra.SkeletonOptimization.BestAccuracy;
 }
示例#3
0
 private void OnSkeletonOptimizationChanged(Astra.SkeletonOptimization optimization)
 {
     AstraManager.Instance.BodyStream.SetSkeletonOptimization(optimization);
 }