概要
using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var gameObject = Selection.activeGameObject; var lineRenderer = gameObject.GetComponent<LineRenderer>(); lineRenderer.materials[0] = AssetDatabase.GetBuiltinExtraResource<Material>( "Sprites-Default.mat" ); } }
たとえば上記のようなエディタ拡張を書いて実行した時に
Instantiating material due to calling renderer.material during edit mode. This will leak materials into the scene. You most likely want to use renderer.sharedMaterial instead.
このようなエラーが出る場合は
using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var gameObject = Selection.activeGameObject; var lineRenderer = gameObject.GetComponent<LineRenderer>(); lineRenderer.sharedMaterial = AssetDatabase.GetBuiltinExtraResource<Material>( "Sprites-Default.mat" ); } }
sharedMaterial でマテリアルを設定するとエラーが出なくなります