public void SaveDataAsset()
    {
        SyncCurrenItemAsset();

        if (itemAsset != null)
        {
            itemAsset.destroy_effect_code = UIUtil.GetInputValue(inputSpriteEffect);
            itemAsset.code = UIUtil.GetInputValue(inputSprite);

            float   rotationSpeed = -float.Parse(UIUtil.GetInputValue(inputRotationSpeed));
            Vector3 vectorSpeed   = Vector3.zero;

            if (GameDraggableEditor.GetCanvasType() == GameDraggableCanvasType.CANVAS_2D)
            {
                vectorSpeed = Vector3.zero.WithZ(rotationSpeed);
            }
            else
            {
                vectorSpeed = Vector3.zero.WithY(rotationSpeed);
            }

            itemAsset.speed_rotation.FromVector3(vectorSpeed);

            itemAsset.destructable = UIUtil.GetCheckboxValue(checkboxEditAssetDestructable);
            itemAsset.kinematic    = UIUtil.GetCheckboxValue(checkboxEditAssetKinematic);
            itemAsset.reactive     = UIUtil.GetCheckboxValue(checkboxEditAssetReactive);
            itemAsset.gravity      = UIUtil.GetCheckboxValue(checkboxEditAssetGravity);
        }
    }
    public void UpdateRotation(float val, bool deferSlider, bool deferInput)
    {
        if (itemAsset != null)
        {
            val = Mathf.Clamp(val, MIN_ROTATION_SPEED, MAX_ROTATION_SPEED);
            float sliderVal = NormalizeRotationSlider(val);

            if (!deferInput)
            {
                UIUtil.SetInputValue(inputRotationSpeed, val.ToString());
            }
            if (!deferSlider)
            {
                UIUtil.SetSliderValue(sliderRotationSpeed, sliderVal);
            }

            Vector3 posFrom = Vector3.zero;

            if (GameDraggableEditor.GetCanvasType() == GameDraggableCanvasType.CANVAS_2D)
            {
                posFrom = posFrom.WithZ(-val);
            }
            else
            {
                posFrom = posFrom.WithY(-val);
            }

            itemAsset.speed_rotation.FromVector3(posFrom);
        }
    }