Unity初心者の俺が調べたことをメモするスレ (99レス)
Unity初心者の俺が調べたことをメモするスレ http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
13: 名前は開発中のものです。 [sage] 2023/09/03(日) 22:10:58.50 ID:OCQOviyY 今日は独自のスクロールビューとスクロールバーをより汎用的に使えるようにコードの調整を始めた 今のコードではスクロール自体のクラスとスクロールにコンテンツを渡すクラスが密接に結びついているので、その繋がりを弱めていきたい そこで方法を調べてみると、抽象クラスやインターフェースを利用する方法があるらしい 実は前にも抽象クラスとインターフェースについて購入したアセット素材を解読するために調べたことがあったが、正直その頃は「実装が持てない」以外のことがよく分からなかった 自分で抽象クラス・インターフェースを使ってみようと調べ直した結果、前よりは理解ができたので、ひとまずコードが少なくて調整が楽そうな独自スクロールバーにこの二つを実装してみて、ビューとバーの繋がりを弱めてみた その4 抽象クラスとインターフェースについて 抽象クラスもインターフェースも、これを継承したクラスに対して自身が要求する関数などメンバーを実装するように強制させる機能を有する。 他の類似点としては、両方ともインスタンスを生成することができない。抽象クラスはMonoBehaviourを継承していてもゲームオブジェクトにアタッチすることができない(エディタ上で警告文が出てアタッチ処理自体が行われない)。 逆にこの二つの違いは、 ?抽象クラスは(C#では多重継承が不可能であるため)直接的には1個しか継承できないが、インターフェースは2個以上を継承することができる ?抽象クラスはフィールドを持つことができるが、インターフェースは持てない ?抽象クラスや実装のある(中身のある)関数等を持つができるため、普通の基底クラスとしても利用できる。インターフェースは持てないっぽい?(実はデフォルト実装という機能があるらしいが、C#の新しい機能だそうでUnityで対応しているかよく調べてない。しかも今のところあまり利用が推奨されないらしい) ?抽象クラスの抽象メソッドはアクセス修飾子はpublic又はprotectedでなければならない。protected(自身と派生クラスのみアクセス可能)が許されている点から抽象クラスはクラスの内部向けルールを定める性質が強い。一方でインターフェースのメンバーはpublicに限定される。インターフェースはInter + Faceの語源通りクラスの外部向けルールを定める性質が強い http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/13
14: 名前は開発中のものです。 [sage] 2023/09/03(日) 22:30:09.73 ID:OCQOviyY 今回は、インターフェースの「他のクラスのメンバーにアクセスしたいとき、そのクラスがインターフェースを実装していることさえ分かっていれば、クラス内の細かい実装を知る必要がない」という利点を体感することができた 他のクラスへの参照をインターフェースの型で取得することで、そのクラスがどんなクラスであってもそのインターフェースの実装たるメンバには確実にアクセスすることができるようになるのだ(もちろんメンバで滅茶苦茶な内容が実装されている可能性はある。ここはコードを書く人の良心任せ) 自分のプロジェクトでは独自のスクロールビューとスクロールバーを利用しているが、このうち「スクロールビューからスクロールバーに数値を渡す関数」をインターフェースの実装とすることで、スクロールバーは独自スクロールビューがどんなクラスでも数値を受け取れるようになった(今後用途に応じてスクロールビュークラスを拡張や派生させても、スクロールバークラスをその都度修正する必要がなくなった) ちなみにスクロールビュークラス側には、今後の拡張に備えて抽象クラスを作成してその抽象クラス内でインターフェースを抽象メンバとして実装したのだが、この辺は自分でもどういう利点があるのかまだ理解しきれてないのでまた今度 http://mevius.5ch.net/test/read.cgi/gamedev/1693399963/14
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.005s