public static GameObject CreatePrimitivePlus(PrimitivePlusType type) { string typeString = type.ToString(); GameObject gameObject = new GameObject(typeString); MeshFilter mesh = gameObject.AddComponent <MeshFilter>(); mesh.sharedMesh = PrimitivePlusMeshes.GetMeshType(type); mesh.sharedMesh.name = typeString; #if UNITY_5 Material material = new Material(Shader.Find("Standard")); #else Material material = new Material(Shader.Find("Diffuse")); #endif gameObject.AddComponent <MeshRenderer>().sharedMaterial = material; if (typeString == "Cube") { gameObject.AddComponent <BoxCollider>(); } else if (typeString == "Sphere" || typeString == "Heart") { gameObject.AddComponent <SphereCollider>(); } else if (mesh.sharedMesh.triangles.Length / 3 < 255) { gameObject.AddComponent <MeshCollider>(); } gameObject.AddComponent <PrimitivePlusMaterial>(); return(gameObject); }
public static Mesh GetMeshType(PrimitivePlusType type) { switch (type) { case PrimitivePlusType.Circle2D: return((m_Circle2D == null) ? Circle2D() : m_Circle2D); case PrimitivePlusType.CircleHalf2D: return((m_CircleHalf2D == null) ? CircleHalf2D() : m_CircleHalf2D); case PrimitivePlusType.Cone: return((m_Cone == null) ? Cone() : m_Cone); case PrimitivePlusType.ConeHalf: return((m_ConeHalf == null) ? ConeHalf() : m_ConeHalf); case PrimitivePlusType.ConeHexagon: return((m_ConeHexagon == null) ? ConeHexagon() : m_ConeHexagon); case PrimitivePlusType.ConePentagon: return((m_ConePentagon == null) ? ConePentagon() : m_ConePentagon); case PrimitivePlusType.Cross: return((m_Cross == null) ? Cross() : m_Cross); case PrimitivePlusType.Cross2D: return((m_Cross2D == null) ? Cross2D() : m_Cross2D); case PrimitivePlusType.Cube: return((m_Cube == null) ? Cube() : m_Cube); case PrimitivePlusType.CubeCorner: return((m_CubeCorner == null) ? CubeCorner() : m_CubeCorner); case PrimitivePlusType.CubeCornerThin: return((m_CubeCornerThin == null) ? CubeCornerThin() : m_CubeCornerThin); case PrimitivePlusType.CubeEdgeIn: return((m_CubeEdgeIn == null) ? CubeEdgeIn() : m_CubeEdgeIn); case PrimitivePlusType.CubeEdgeOut: return((m_CubeEdgeOut == null) ? CubeEdgeOut() : m_CubeEdgeOut); case PrimitivePlusType.CubeHollow: return((m_CubeHollow == null) ? CubeHollow() : m_CubeHollow); case PrimitivePlusType.CubeHollowThin: return((m_CubeHollowThin == null) ? CubeHollowThin() : m_CubeHollowThin); case PrimitivePlusType.CubeTube: return((m_CubeTube == null) ? CubeTube() : m_CubeTube); case PrimitivePlusType.Cylinder: return((m_Cylinder == null) ? Cylinder() : m_Cylinder); case PrimitivePlusType.CylinderHalf: return((m_CylinderHalf == null) ? CylinderHalf() : m_CylinderHalf); case PrimitivePlusType.CylinderTube: return((m_CylinderTube == null) ? CylinderTube() : m_CylinderTube); case PrimitivePlusType.CylinderTubeThin: return((m_CylinderTubeThin == null) ? CylinderTubeThin() : m_CylinderTubeThin); case PrimitivePlusType.Diamond: return((m_Diamond == null) ? Diamond() : m_Diamond); case PrimitivePlusType.DiamondThick: return((m_DiamondThick == null) ? DiamondThick() : m_DiamondThick); case PrimitivePlusType.Heart: return((m_Heart == null) ? Heart() : m_Heart); case PrimitivePlusType.Heart2D: return((m_Heart2D == null) ? Heart2D() : m_Heart2D); case PrimitivePlusType.Hexagon2D: return((m_Hexagon2D == null) ? Hexagon2D() : m_Hexagon2D); case PrimitivePlusType.Icosphere: return((m_Icosphere == null) ? Icosphere() : m_Icosphere); case PrimitivePlusType.IcosphereSmall: return((m_IcosphereSmall == null) ? IcosphereSmall() : m_IcosphereSmall); case PrimitivePlusType.Plane: return((m_Plane == null) ? Plane() : m_Plane); case PrimitivePlusType.PrismHexagon: return((m_PrismHexagon == null) ? PrismHexagon() : m_PrismHexagon); case PrimitivePlusType.PrismOctagon: return((m_PrismOctagon == null) ? PrismOctagon() : m_PrismOctagon); case PrimitivePlusType.PrismPentagon: return((m_PrismPentagon == null) ? PrismPentagon() : m_PrismPentagon); case PrimitivePlusType.PrismTriangle: return((m_PrismTriangle == null) ? PrismTriangle() : m_PrismTriangle); case PrimitivePlusType.Pyramid: return((m_Pyramid == null) ? Pyramid() : m_Pyramid); case PrimitivePlusType.PyramidCorner: return((m_PyramidCorner == null) ? PyramidCorner() : m_PyramidCorner); case PrimitivePlusType.PyramidTri: return((m_PyramidTri == null) ? PyramidTri() : m_PyramidTri); case PrimitivePlusType.Rhombus2D: return((m_Rhombus2D == null) ? Rhombus2D() : m_Rhombus2D); case PrimitivePlusType.Sphere: return((m_Sphere == null) ? Sphere() : m_Sphere); case PrimitivePlusType.SphereHalf: return((m_SphereHalf == null) ? SphereHalf() : m_SphereHalf); case PrimitivePlusType.Star: return((m_Star == null) ? Star() : m_Star); case PrimitivePlusType.Star2D: return((m_Star2D == null) ? Star2D() : m_Star2D); case PrimitivePlusType.Torus: return((m_Torus == null) ? Torus() : m_Torus); case PrimitivePlusType.TorusHalf: return((m_TorusHalf == null) ? TorusHalf() : m_TorusHalf); case PrimitivePlusType.Triangle2D: return((m_Triangle2D == null) ? Triangle2D() : m_Triangle2D); case PrimitivePlusType.Wedge: return((m_Wedge == null) ? Wedge() : m_Wedge); default: return(null); } }