# CreateInstance

> Create a new instance of the given type.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.5/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

## CreateInstance\<T>()

Create a new instance of the given type.

```csharp
public static T CreateInstance<T>() where T : Object
```

### Returns

| Type | Description |
| ---- | ----------- |
| T    |             |

### Remarks

Use this method to create any type of serialized object in the Editor. The created instance uses default values.

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class CreateInstanceExample
{
    [MenuItem("ObjectFactoryExample/Create Material Asset")]
    public void CreateMaterialEditor()
    {
        Material material = ObjectFactory.CreateInstance<Material>();
        material.shader = Shader.Find("Transparent/Diffuse");
        AssetDatabase.CreateAsset(material, "Assets/newMaterial.mat");
    }
}
```

## CreateInstance(Type)

Create a new instance of the given type.

```csharp
public static Object CreateInstance(Type type)
```

### Parameters

**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of instance to create.

### Returns

| Type                                                            | Description |
| --------------------------------------------------------------- | ----------- |
| [Object](/engine/6000.5/script-reference/unityengine/object.md) |             |

### Remarks

Use this method to create any type of serialized object in the Editor. The created instance uses default values.

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class CreateInstanceExample
{
    [MenuItem("ObjectFactoryExample/Create Material Asset")]
    public void CreateMaterialEditor()
    {
        Material material = ObjectFactory.CreateInstance<Material>();
        material.shader = Shader.Find("Transparent/Diffuse");
        AssetDatabase.CreateAsset(material, "Assets/newMaterial.mat");
    }
}
```
