Example #1
0
        private void OnScaleReleased(MonoBehaviour marker)
        {
            MoveableGUIObject component   = marker.GetComponent <MoveableGUIObject>();
            GuideObject       guideObject = component.guideObject;
            GuideScale        guideScale  = component.guideScale;

            if (guideObject.enableScale && guideScale)
            {
                marker.transform.localPosition = CalcScaleHandleDefaultPos(guideScale);
            }
        }
Example #2
0
        private bool InstallScaleMoveMarker(GuideObject guideObject)
        {
            Transform transform = guideObject.gameObject.transform.Find("scale");

            if (transform.transform.Find("X/_gripmovemarker_scale") == null)
            {
                foreach (string text in new string[]
                {
                    "XYZ",
                    "X",
                    "Y",
                    "Z"
                })
                {
                    Transform  transform2 = transform.Find(text);
                    GuideScale component  = transform2.gameObject.GetComponent <GuideScale>();
                    if (component != null)
                    {
                        GameObject gameObject = GameObject.CreatePrimitive(0);
                        gameObject.name  = "_gripmovemarker_scale";
                        gameObject.layer = LayerMask.NameToLayer("Studio/Select");
                        Renderer component2 = gameObject.GetComponent <Renderer>();
                        Material material   = new Material(MaterialHelper.GetColorZOrderShader());
                        material.color = new Color(0f, 1f, 1f, 0.3f);
                        material.SetFloat("_AlphaRatio", 1.5f);
                        material.renderQueue = 3800;
                        component2.material  = material;
                        Renderer       component3     = transform2.gameObject.GetComponent <Renderer>();
                        SphereCollider sphereCollider = gameObject.AddComponent <SphereCollider>();
                        Transform      transform3     = gameObject.transform;
                        transform3.transform.parent        = transform2;
                        transform3.transform.localPosition = CalcScaleHandleDefaultPos(component);
                        transform3.transform.rotation      = guideObject.transformTarget.rotation;
                        transform3.transform.localScale    = Vector3.one;
                        sphereCollider.isTrigger           = true;
                        MoveableGUIObject moveableGUIObject = gameObject.AddComponent <MoveableGUIObject>();
                        moveableGUIObject.guideObject = guideObject;
                        moveableGUIObject.guideScale  = component;
                        moveableGUIObject.onMoveLister.Add(new Action <MonoBehaviour>(OnScaleMove));
                        moveableGUIObject.onReleasedLister.Add(new Action <MonoBehaviour>(OnScaleReleased));
                        moveableGUIObject.visibleReference = component3;
                    }
                }
                return(true);
            }
            return(false);
        }
Example #3
0
        private Vector3 CalcScaleHandleDefaultPos(GuideScale guideScale)
        {
            switch (guideScale.axis)
            {
            case GuideScale.ScaleAxis.X:
                return(new Vector3(0.25f, 0f, 0f));

            case GuideScale.ScaleAxis.Y:
                return(new Vector3(0f, 0.25f, 0f));

            case GuideScale.ScaleAxis.Z:
                return(new Vector3(0f, 0f, 0.25f));

            case GuideScale.ScaleAxis.XYZ:
                return(new Vector3(0.25f, 0.25f, 0.25f) * 0.25f / DEFAULT_SCALE_POS_XYZ_DIST);

            default:
                return(Vector3.zero);
            }
        }
Example #4
0
        private void OnScaleMove(MonoBehaviour marker)
        {
            MoveableGUIObject component   = marker.GetComponent <MoveableGUIObject>();
            Transform         parent      = marker.transform.parent;
            GuideObject       guideObject = component.guideObject;
            GuideScale        guideScale  = component.guideScale;

            if (guideObject.enableScale && component.guideScale)
            {
                float magnitude = marker.transform.localPosition.magnitude;
                if (magnitude > 0f)
                {
                    float   num    = magnitude / 0.25f;
                    Vector3 vector = component.oldScale;
                    switch (guideScale.axis)
                    {
                    case GuideScale.ScaleAxis.X:
                        vector.x *= num;
                        break;

                    case GuideScale.ScaleAxis.Y:
                        vector.y *= num;
                        break;

                    case GuideScale.ScaleAxis.Z:
                        vector.z *= num;
                        break;

                    case GuideScale.ScaleAxis.XYZ:
                        vector *= num;
                        break;
                    }
                    vector.x = Mathf.Max(vector.x, 0.01f);
                    vector.y = Mathf.Max(vector.y, 0.01f);
                    vector.z = Mathf.Max(vector.z, 0.01f);
                    guideObject.changeAmount.scale = vector;
                }
            }
        }