Пример #1
0
        public void SetMaskMappingAxisInMaterial(MappingAxis mappingAxis, Material material)
        {
            if ((material.shader == _maskedSpriteWorldCoordsShader) ||
                (material.shader == _maskedUnlitWorldCoordsShader))
            {
                switch (mappingAxis)
                {
                case MappingAxis.X:
                    material.SetFloat("_Axis", 0);
                    material.EnableKeyword("_AXIS_X");
                    material.DisableKeyword("_AXIS_Y");
                    material.DisableKeyword("_AXIS_Z");
                    break;

                case MappingAxis.Y:
                    material.SetFloat("_Axis", 1);
                    material.DisableKeyword("_AXIS_X");
                    material.EnableKeyword("_AXIS_Y");
                    material.DisableKeyword("_AXIS_Z");
                    break;

                case MappingAxis.Z:
                    material.SetFloat("_Axis", 2);
                    material.DisableKeyword("_AXIS_X");
                    material.DisableKeyword("_AXIS_Y");
                    material.EnableKeyword("_AXIS_Z");
                    break;
                }
            }
        }
Пример #2
0
 private void SetMaskMappingAxisInMaterials(MappingAxis mappingAxis)
 {
     foreach (Material material in CollectDifferentMaterials())
     {
         SetMaskMappingAxisInMaterial(mappingAxis, material);
     }
 }
Пример #3
0
        private void SetMaskMappingAxisInMaterials(MappingAxis mappingAxis)
        {
            if (transform.parent == null)
            {
                return;
            }

            Renderer[]      renderers          = transform.parent.gameObject.GetComponentsInChildren <Renderer>();
            Graphic[]       UIComponents       = transform.parent.gameObject.GetComponentsInChildren <Graphic>();
            List <Material> differentMaterials = new List <Material>();

            foreach (Renderer renderer in renderers)
            {
                if (renderer.gameObject != gameObject)
                {
                    foreach (Material material in renderer.sharedMaterials)
                    {
                        if (!differentMaterials.Contains(material))
                        {
                            differentMaterials.Add(material);

                            SetMaskMappingAxisInMaterial(mappingAxis, material);
                        }
                    }
                }
            }

            foreach (Graphic UIComponent in UIComponents)
            {
                if (UIComponent.gameObject != gameObject)
                {
                    if (!differentMaterials.Contains(UIComponent.material))
                    {
                        differentMaterials.Add(UIComponent.material);

                        SetMaskMappingAxisInMaterial(mappingAxis, UIComponent.material);
                    }
                }
            }
        }
Пример #4
0
        private void ChangeMappingAxis(MappingAxis currMaskMappingWorldAxis, MappingAxis prevMaskMappingWorldAxis, bool currInvertAxis)
        {
            if (currMaskMappingWorldAxis == MappingAxis.X)
            {
                if (prevMaskMappingWorldAxis == MappingAxis.Y)
                {
                    transform.eulerAngles = new Vector3(0, currInvertAxis ? -90 : 90, transform.eulerAngles.y);
                }
                else
                {
                    transform.eulerAngles = new Vector3(0, currInvertAxis ? -90 : 90, transform.eulerAngles.z);
                }
            }
            else if (currMaskMappingWorldAxis == MappingAxis.Y)
            {
                if (prevMaskMappingWorldAxis == MappingAxis.Y)
                {
                    transform.eulerAngles = new Vector3(currInvertAxis ? -90 : 90, transform.eulerAngles.y, 0);
                }
                else
                {
                    transform.eulerAngles = new Vector3(currInvertAxis ? -90 : 90, transform.eulerAngles.z, 0);
                }
            }
            else if (currMaskMappingWorldAxis == MappingAxis.Z)
            {
                if (prevMaskMappingWorldAxis == MappingAxis.Y)
                {
                    transform.eulerAngles = new Vector3(0, currInvertAxis ? -180 : 0, transform.eulerAngles.y);
                }
                else
                {
                    transform.eulerAngles = new Vector3(0, currInvertAxis ? -180 : 0, transform.eulerAngles.z);
                }
            }

            SetMaskMappingAxisInMaterials(currMaskMappingWorldAxis);
        }
Пример #5
0
    private void SetMaskMappingAxisInMaterials(MappingAxis mappingAxis)
    {
        if (transform.parent == null)
        {
            return;
        }

        Renderer[] renderers = transform.parent.gameObject.GetComponentsInChildren<Renderer>();
        List<Material> differentMaterials = new List<Material>();

        foreach (Renderer renderer in renderers)
        {
            if (renderer.gameObject != gameObject)
            {
                foreach (Material material in renderer.sharedMaterials)
                {
                    if (!differentMaterials.Contains(material))
                    {
                        differentMaterials.Add(material);

                        SetMaskMappingAxisInMaterial(mappingAxis, material);
                    }
                }
            }
        }
    }
Пример #6
0
    private void ChangeMappingAxis(MappingAxis currMaskMappingWorldAxis, MappingAxis prevMaskMappingWorldAxis, bool currInvertAxis)
    {
        if (currMaskMappingWorldAxis == MappingAxis.X)
        {
            if (prevMaskMappingWorldAxis == MappingAxis.Y)
            {
                transform.eulerAngles = new Vector3(0, currInvertAxis ? -90 : 90, transform.eulerAngles.y);
            }
            else
            {
                transform.eulerAngles = new Vector3(0, currInvertAxis ? -90 : 90, transform.eulerAngles.z);
            }
        }
        else if (currMaskMappingWorldAxis == MappingAxis.Y)
        {
            if (prevMaskMappingWorldAxis == MappingAxis.Y)
            {
                transform.eulerAngles = new Vector3(currInvertAxis ? -90 : 90, transform.eulerAngles.y, 0);
            }
            else
            {
                transform.eulerAngles = new Vector3(currInvertAxis ? -90 : 90, transform.eulerAngles.z, 0);
            }
        }
        else if (currMaskMappingWorldAxis == MappingAxis.Z)
        {
            if (prevMaskMappingWorldAxis == MappingAxis.Y)
            {
                transform.eulerAngles = new Vector3(0, currInvertAxis ? -180 : 0, transform.eulerAngles.y);
            }
            else
            {
                transform.eulerAngles = new Vector3(0, currInvertAxis ? -180 : 0, transform.eulerAngles.z);
            }
        }

        SetMaskMappingAxisInMaterials(currMaskMappingWorldAxis);
    }
Пример #7
0
 public void SetMaskMappingAxisInMaterial(MappingAxis mappingAxis, Material material)
 {
     if ((material.shader == _maskedSpriteWorldCoordsShader) ||
         (material.shader == _maskedUnlitWorldCoordsShader))
     {
         switch (mappingAxis)
         {
         case MappingAxis.X:
             material.SetFloat("_Axis", 0);
             material.EnableKeyword("_AXIS_X");
             material.DisableKeyword("_AXIS_Y");
             material.DisableKeyword("_AXIS_Z");
             break;
         case MappingAxis.Y:
             material.SetFloat("_Axis", 1);
             material.DisableKeyword("_AXIS_X");
             material.EnableKeyword("_AXIS_Y");
             material.DisableKeyword("_AXIS_Z");
             break;
         case MappingAxis.Z:
             material.SetFloat("_Axis", 2);
             material.DisableKeyword("_AXIS_X");
             material.DisableKeyword("_AXIS_Y");
             material.EnableKeyword("_AXIS_Z");
             break;
         }
     }
 }