こんにちは、いつもお世話になっております。
現在、unityでゲームを作る勉強をしている最中なのですが、参考にしたスクリプトの中に EditorUtility.SetDirtyという物が使われていたのですが、これがどういう働きをするものなのか公式のリファレンスを翻訳して読んでみても、いまいち理解が出来ませんでした。
引数に入れている「gridProperties」はTilemapのステータスを記したScriptableObjectです。
using
1using UnityEngine; 2using UnityEngine.Tilemaps; 3 4[ExecuteAlways] 5 6public class TilemapGridProperties : MonoBehaviour 7 8{ 9 private Tilemap tilemap; 10 private Grid grid; 11 [SerializeField] private SO_GridProperties gridProperties = null; 12 [SerializeField] private GridBoolProperty gridBoolProperty = GridBoolProperty.diggable; 13 14 15 private void OnEnable() 16 { 17 if (!Application.IsPlaying(gameObject)); 18 { 19 tilemap = GetComponent<Tilemap>(); 20 21 if (gridProperties != null) 22 { 23 gridProperties.gridPropertyList.Clear(); 24 } 25 } 26 } 27 28 private void OnDisable() 29 { 30 if (!Application.IsPlaying(gameObject)) 31 { 32 UpdateGridProperties(); 33 34 if (gridProperties != null) 35 { 36 EditorUtility.SetDirty(gridProperties); 37 } 38 } 39 } 40 41 private void UpdateGridProperties() 42 { 43 //Compress timemap bounds 44 tilemap.CompressBounds(); 45 46 //Only populate in the editor 47 if (!Application.IsPlaying(gameObject)) 48 { 49 if (gridProperties != null) 50 { 51 Vector3Int startCell = tilemap.cellBounds.min; 52 Vector3Int endCell = tilemap.cellBounds.max; 53 54 for(int x = startCell.x; x < endCell.x; x++) 55 { 56 for(int y = startCell.y; y < endCell.y; y++) 57 { 58 TileBase tile = tilemap.GetTile(new Vector3Int(x, y, 0)); 59 60 if (tile != null) 61 { 62 gridProperties.gridPropertyList.Add(new GridProperty(new GridCoordinate(x, y), gridBoolProperty, true)); 63 } 64 } 65 } 66 } 67 } 68 } 69 private void Update() 70 { 71 if (!Application.IsPlaying(gameObject)) 72 { 73 Debug.Log("DISABLE PROPERTY TILMAPS"); 74 } 75 } 76コード
分かりづらい質問で本当に申し訳ございませんが、EditorUtility.SetDirtyがどういう働きをする物なのかお教え願えないでしょうか、よろしくお願いします。
いつどういう場面で使おうとしているかが分からないため、回答しづらいです。
「ユーチューブで2Dゲームの作り方を勉強」といっても、これだけでどんな動画なのか分かる人はエスパーしかいません。
大変失礼いたしまた。
急いで質問を書き換えます。
なにぶん学がない者でして、プログラムの理解が低いことを許しください。
何を作ろうとして、どの動画を見たのかを書くとわかる人がいるかもしれません
アドバイスありがとうございます。質問を書き換えます。
「EditorUtility.SetDirty」で検索するとリファレンス以外に解説サイト等が出ます。
それを見て何がわかったか・何がわからないか記載してください。
ありがとうございます。もっと調べてきます
回答1件
あなたの回答
tips
プレビュー