Skip to content

beinteractive/Unity2018UpgradeTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unity 2018 Upgrade Tools

This library helps you to upgrade your existing project to Unity 2018.

Analyze Shader Usage

using Unity2018UpgradeTools;
using UnityEditor;

public class Unity2018Upgrading
{
    [MenuItem("Assets/Analyze Shader Usage")]
    static void Analyze()
    {
        Materials
            .SearchMaterials(new[] { "Assets/Materials" })
            .AnalyzeShaderUsage()
            .Log();
    }
}

This will generate logs in console that indicates which shaders are used by materials.

It's useful to find shaders/materials you should rewrite for SRP compatible.

Bulk Update Shaders

using Unity2018UpgradeTools;
using UnityEditor;

public class Unity2018Upgrading
{
    [MenuItem("Assets/Bulk Update Shaders")]
    static void BulkUpdate()
    {
        Materials
            .SearchMaterials(new[] { "Assets/Materials" })
            .UsingShader("Unlit/Color")
            .ReplaceShader("Lightweight/Unlit/Color");
    }
}

This will update a shader of materials that has a specified shader to new shader.

Bulk Update Particle Systems

using Unity2018UpgradeTools;
using UnityEditor;

public class Unity2018Upgrading
{
    [MenuItem("Assets/Bulk Update Particles in Assets")]
    static void UpdateParticlesInAssets()
    {
        GameObjects
            .Search(new[] { "Assets/Materials" })
            .ParticleSystems()
            .EnableGPUInstancing();
    }

    [MenuItem("Assets/Bulk Update Particles in Scene")]
    static void UpdateParticlesInScene()
    {
        GameObjects
            .AllInScene()
            .ParticleSystems()
            .EnableGPUInstancing();
    }
}

This will update particle systems that has billboard render mode to use mesh & GPU Instancing.

Find & Update Missing GPU Instancing Materials

using Unity2018UpgradeTools;
using UnityEditor;

public class Unity2018Upgrading
{
    [MenuItem("Assets/Bulk Update Missing GPU Instancing/Dry Run")]
    static void ShowMissingGPUInstancing()
    {
        Materials
            .SearchMaterials(new[] { "Assets/Materials" })
            .FindMissingGPUInstancingMaterials()
            .Log();
    }

    [MenuItem("Assets/Bulk Update Missing GPU Instancing/Run")]
    static void UpdateMissingGPUInstancing()
    {
        Materials
            .SearchMaterials(new[] { "Assets/Materials" })
            .FindMissingGPUInstancingMaterials()
            .EnableGPUInstancing();
    }
}

This will find materials with a shader that has a GPU Instancing variant but with a Enable GPU Instancing field is off.

  • Dry Run will display such materials in console.
  • Run will set material's Enable GPU Instancing to on.

About

Collection of codes for upgrading to Unity 2018

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages