Exemple #1
0
        private void GenerateUVMap(GeneratedRect targetRect)
        {
            UVBitmapGenerator generator = new UVBitmapGenerator();

            output = generator.StoreUVMap(targetRect.Uvs, targetRect.UvSize);
            AssetDatabase.Refresh();
        }
Exemple #2
0
        private void AssignSizeValues(GeneratedRect targetRect, out float x, out float z, out float height)
        {
            if (xProperty.hasMultipleDifferentValues)
            {
                x = targetRect.X;
            }
            else
            {
                x = xProperty.floatValue;
            }

            if (zProperty.hasMultipleDifferentValues)
            {
                z = targetRect.Z;
            }
            else
            {
                z = zProperty.floatValue;
            }

            if (heightProperty.hasMultipleDifferentValues)
            {
                height = targetRect.ColliderHeight;
            }
            else
            {
                height = heightProperty.floatValue;
            }
        }
Exemple #3
0
        private void SetNewMesh(GeneratedRect targetRect, Mesh newMesh)
        {
            MeshFilter meshFilter = targetRect.GetComponent <MeshFilter>();

            if (meshFilter != null)
            {
                Undo.RecordObject(meshFilter, "MeshFilter mesh change");
                meshFilter.mesh = newMesh;
            }
        }
Exemple #4
0
        public void AssignRectVariables(BoxCollider col)
        {
            GeneratedRect generatedRect = col.GetComponent <GeneratedRect>();

            generatedRect.X = x;
            generatedRect.Z = z;
            generatedRect.ColliderHeight = colliderHeight;
            generatedRect.ColliderCenter = col.transform.TransformPoint(col.center);
            lastCreatedRect = generatedRect;
        }
Exemple #5
0
        private void AdaptCollider(GeneratedRect targetRect, RectMeshGenerator meshGenerator)
        {
            BoxCollider col = targetRect.GetComponent <BoxCollider>();

            if (col != null)
            {
                Undo.RecordObject(col, "Collider bounds change");
                meshGenerator.AssignRectVariables(col);
                meshGenerator.AdjustCollider(col, heightProperty.floatValue);
            }
        }
Exemple #6
0
        private void RecreateRectAndSetColliderCenter(GeneratedRect targetRect)
        {
            RecreateRect(targetRect);

            BoxCollider col = targetRect.GetComponent <BoxCollider>();

            if (col != null)
            {
                targetRect.ColliderCenter = col.transform.TransformPoint(col.center);
            }
        }
Exemple #7
0
        private void ResizeToColliderBounds(GeneratedRect targetRect)
        {
            BoxCollider col = targetRect.GetComponent <BoxCollider>();

            if (col != null)
            {
                Vector3 newCenter = col.transform.TransformPoint(col.center);
                xProperty.floatValue      = col.size.x;
                zProperty.floatValue      = col.size.z;
                heightProperty.floatValue = col.size.y;
                RecreateRect(targetRect);
                targetRect.MoveToColliderCenter(newCenter);
            }
        }
Exemple #8
0
        void OnEnable()
        {
            xProperty      = serializedObject.FindProperty("x");
            zProperty      = serializedObject.FindProperty("z");
            heightProperty = serializedObject.FindProperty("colliderHeight");

            targetRects     = System.Array.ConvertAll(targets, item => (GeneratedRect)item);
            firstTargetRect = targetRects[0];

            if (!firstTargetRect.Output.Equals(string.Empty))
            {
                output = firstTargetRect.Output;
            }
        }
Exemple #9
0
        private void RecreateRect(GeneratedRect targetRect)
        {
            float x, z, height;

            AssignSizeValues(targetRect, out x, out z, out height);

            RectMeshGenerator meshGenerator = new RectMeshGenerator(x, z, height);

            meshGenerator.CreateRect();
            Mesh newMesh = meshGenerator.GetMesh();

            SetNewMesh(targetRect, newMesh);
            AdaptCollider(targetRect, meshGenerator);

            targetRect.Uvs = meshGenerator.GetUVs();
        }