白紙ソート

Unity備忘録

1.
移動して書き直しました。
warning CS0108 ○○ は継承メンバー ○○ を隠します。の意味

2.
変数名の先頭にアンダーバーをつけてもインスペクタ上では表記は変わらない

3.
GameObject.Findだと非アクティブなオブジェクトは取得できない
非アクティブオブジェクトのFind("name").activeselfはできない
Awakeで変数に格納してそれを参照するとよい

4.
ビルド設定で追加したシーンはDelキーで削除できる
順番の変更はドラッグでできる

プログラミングメモ:シングルトン

シングルトン:あるクラスをプログラム全体で唯一にしたいときに用いる手法

コンストラクタをprivateにしたクラスを用意し、そのクラス型のstatic変数を作り、コンストラクタで初期化する。
このとき、コンストラクタがprivateであるため、その後外部からこのクラスのインスタンスを生成することはできなくなる。
よってプログラム開始時に唯一のインスタンスが生成されることになる。
当該クラスを利用する場合、publicなgetメソッドorプロパティで、生成したインスタンスにアクセスする。

唯一のインスタンスを作るならstaticクラスでいいと思ったが、コンストラクタがpublicの場合、外部からコンストラクタを呼び出すことができるため、特に大規模プログラムの場合、2か所以上でインスタンス生成してしまい、唯一のインスタンスにならない可能性が生まれる。
小規模で唯一性を担保できる場合はあまり問題ない。

結局外部クラスを使うため、シングルトンを呼び出したクラス単体での利用、流用がしづらくなる。


例:
public class Singleton
{
//このタイミングでのみインスタンス生成することで唯一性を確保
private static Singleton instance = new Singleton();

private Singleton() { }

public static Singleton GetSingleton
{
get
{
return instance;
}
}
public int number;
}

使い方:
Singleton.GetSingleton.number=0;

当たり前だがフィールド、メソッドがpublicなら普通にメンバ変数を外部から呼び出せる。
一つしかインスタンスを作れない→内部変数がいじれないという意味不明な勘違いをしていた。

アニメ視聴チェッカー

プログラミングの練習でアニメ視聴チェックリストを作りました。
残り視聴時間や動画サイトでの視聴期限を確認できるので、視聴計画作りのお供にでも。
ぶっちゃけエクセルで十分なんですが。
というか元々エクセルで作ったリストをプログラムに落としただけです。

デフォGUI例



あとボタンが動かせたり、背景画像が変更できたりします。
お好きなアニメの壁紙とかを設定するといいかも。

GUI例


ダウンロードはこちら
※12/2 バグ修正
※11/28 バグ修正。
※10/28 バグ修正。
※10/20 バグ修正。
※10/19 視聴期限の追加。
※10/14 バグ修正。

正直大して複雑でないのに結構時間がかかってびっくりです。
次は何かゲームが作りたいですね。

FC2Ad