0
エディタスクリプトでマテリアルテクスチャを変更しています。一度実行すると、エディタウィンドウに変更が表示されますが、シーンやヒットプレイを保存すると変更内容は失われます。エディタスクリプトからの材料の変更が保存時に失われる
var mySkyBox = Resources.Load<Material>("Materials/MySkyBox");
Undo.RecordObject(mySkyBox, "setting mySkyBox texture");
var texture = new Texture2D(2, 2);
texture.LoadImage(File.ReadAllBytes("texturePath"));
mySkyBox.SetTexture("_UpTex", texture);
EditorUtility.SetDirty(mySkyBox);
私は、材料をロードするためにLoadMainAssetAtPath
を使用して試してみましたが、それはどちらか動作しません:
は、ここに私のコードです。
私は私が正しくエディタスクリプトの材料を編集し、変更が持続することができどのよう5.3.7f1
ユニティを使用していますか?
EditorSceneManager.MarkAllScenesDirtyは()もねえ、それはあなたが 'を呼び出した後団結はそれを保存しないことを面白そう – lockstock
動作しません。 SetDirty'。しかし、あなたは 'AssetDatabase.SaveAssets();'を呼び出すことができます - それは助けるかもしれません。 アセットを読み込むために 'AssetDatabase'を使うこともできます: https://docs.unity3d.com/ScriptReference/AssetDatabase.LoadAssetAtPath.html – zhekazheka