2021-04-01から1ヶ月間の記事一覧
static インスタンスの開放などで、スクリプトのコンパイルを行いたいときに コードを少しいじって、コンパイルを走らせていましたが、CompilationPipeline.RequestScriptCompilation を呼び出すことで非同期コンパイルを走らせることができるようでした // …
昔は Preference から Skin を変更できた気がするのですが、Unity2020.3 には無いようだったので 内部のメソッドを呼び出して、Skin を変更できるようにしてみました スキンの変更にはコンパイルが必要なので即時には変わりませんが、これを利用することでス…
Hierarchy にあるオブジェクトを選択状態にするには GameObject.Find でパスからオブジェクトを探して、Selection.activeGameObjectに代入するだけでできる Selection.activeGameObject = GameObject.Find(path); しかし、PrefabMode の場合 GameObject.Find…
private object CreateListInstance<T>(T[] values) { var elementType = typeof(T); var listType = typeof(List<>).MakeGenericType(elementType); var list = (IList) Activator.CreateInstance(listType); for (var i = 0; i < values.Length; i++) list.Ad</t>…
private object CreateArrayInstance<T>(T[] values) { var elementType = typeof(T); var array = (Array) Activator.CreateInstance(elementType, values.Length); for (var i = 0; i < values.Length; i++) array.SetValue(values[i], i); return array; }</t>
Listの要素を増減させる Editor 拡張を作成した際に 下記のようにスクリプトを書くと、消したタイミングでエラーが発生する public class EditorSampleWindow : EditorWindow { private List<int> _intList = new List<int>() { 1, 2, 3, 4, 5 }; private void OnGUI()</int></int>…
ContentSizeFitter 等を利用した RectTransform では サイズを確定させるためには 1フレーム待つ必要があります もし、待ちを無くす場合は以下のどちらかのメソッドを呼び出すことで 1フレームの待ちをせずサイズを確定させることができます Canvas.ForceUpd…
シリアライズされていないオブジェクトの中身は Debug モードの Inspector でも表示できないため 表示させるためにはそれ専用のなにかが必要になる しかしながら、必要なオブジェクトごとにそれを作るのが面倒になるので、リフレクションを用いて オブジェク…
Image を BaseMeshEffect を利用して曲げてみたかったので作成してみました ※Sliced や Filled には未対応、水平のみ メッシュの分割数や、外周の長さなどパラメータの調整をすることで 曲げ具合を変更することができます Shader を使えば Sliced などのとき…
バージョンの比較には System.Version.CompareTo を利用する このメソッドの戻り値は以下のようになっている 戻り値 説明 -1 前のバージョン 0 同じバージョン 1 後のバージョン ラップクラス 上記戻り値の判定を利用した、便利クラス public static class V…
GenericInt が Generic<T> を継承しているか確認するために、BaseType を見てみたところ Generic1[System.Int32]` と表示され意図したクラスが取得できなかった public abstract class Generic<T>{} public class GenericInt : Generic<int>{} private void Main() { va</int></t></t>…
Animation の再生時間を知るためには GetCurrentAnimatorStateInfo で AnimatorStateInfo を取得し、length の値を見ることで確認できる しかし、 animator.Play のあと直ぐに GetCurrentAnimatorStateInfo を呼び出しても 正しい値を取得できない var anima…