# CreatePrimitive(PrimitiveType)

> Creates a GameObject of the specified PrimtiveType with a mesh renderer and appropriate collider.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public static GameObject CreatePrimitive(PrimitiveType type)
```

### Parameters

**** (\[PrimitiveType]\(/engine/6000.7/script-reference/unityengine/primitivetype)): The type of primitive object to create, specified as a member of the [PrimitiveType](/engine/6000.7/script-reference/unityengine/primitivetype.md) enum.

### Returns

| Type                                                                    | Description |
| ----------------------------------------------------------------------- | ----------- |
| [GameObject](/engine/6000.7/script-reference/unityengine/gameobject.md) |             |

### Remarks

For `CreatePrimitive` to succeed at runtime, your project must reference the following components:

* [MeshFilter](/engine/6000.7/script-reference/unityengine/meshfilter.md)
* [MeshRenderer](/engine/6000.7/script-reference/unityengine/meshrenderer.md)
* [BoxCollider](/engine/6000.7/script-reference/unityengine/boxcollider.md)
* [SphereCollider](/engine/6000.7/script-reference/unityengine/spherecollider.md)

To ensure you have the required references, declare private properties of these types to prevent them being stripped from the build. Your project must also reference the Default-Material. If it doesn't, the primitive object will be shown in pink to indicate the missing material.

For more information, refer to [Primitive and placeholder objects](/engine/6000.7/manual/working-with-gameobjects/gameobject-fundamentals/primitive-objects.md) in the Manual.

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    // Create a plane, sphere and cube in the Scene.

    void Start()
    {
        GameObject plane  = GameObject.CreatePrimitive(PrimitiveType.Plane);

        GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.position = new Vector3(0, 0.5f, 0);

        GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        sphere.transform.position = new Vector3(0, 1.5f, 0);

        GameObject capsule = GameObject.CreatePrimitive(PrimitiveType.Capsule);
        capsule.transform.position = new Vector3(2, 1, 0);

        GameObject cylinder = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
        cylinder.transform.position = new Vector3(-2, 1, 0);
    }
}
```

Additional Resources: [PrimitiveType](/engine/6000.7/script-reference/unityengine/primitivetype.md)
