Unity初心者の俺が調べたことをメモするスレ (99レス)
1-

13: 2023/09/03(日)22:10 ID:OCQOviyY(1/2) AAS
今日は独自のスクロールビューとスクロールバーをより汎用的に使えるようにコードの調整を始めた
今のコードではスクロール自体のクラスとスクロールにコンテンツを渡すクラスが密接に結びついているので、その繋がりを弱めていきたい
そこで方法を調べてみると、抽象クラスやインターフェースを利用する方法があるらしい
実は前にも抽象クラスとインターフェースについて購入したアセット素材を解読するために調べたことがあったが、正直その頃は「実装が持てない」以外のことがよく分からなかった
自分で抽象クラス・インターフェースを使ってみようと調べ直した結果、前よりは理解ができたので、ひとまずコードが少なくて調整が楽そうな独自スクロールバーにこの二つを実装してみて、ビューとバーの繋がりを弱めてみた

その4 抽象クラスとインターフェースについて
抽象クラスもインターフェースも、これを継承したクラスに対して自身が要求する関数などメンバーを実装するように強制させる機能を有する。
他の類似点としては、両方ともインスタンスを生成することができない。抽象クラスはMonoBehaviourを継承していてもゲームオブジェクトにアタッチすることができない(エディタ上で警告文が出てアタッチ処理自体が行われない)。
逆にこの二つの違いは、
?抽象クラスは(C#では多重継承が不可能であるため)直接的には1個しか継承できないが、インターフェースは2個以上を継承することができる
?抽象クラスはフィールドを持つことができるが、インターフェースは持てない
?抽象クラスや実装のある(中身のある)関数等を持つができるため、普通の基底クラスとしても利用できる。インターフェースは持てないっぽい?(実はデフォルト実装という機能があるらしいが、C#の新しい機能だそうでUnityで対応しているかよく調べてない。しかも今のところあまり利用が推奨されないらしい)
?抽象クラスの抽象メソッドはアクセス修飾子はpublic又はprotectedでなければならない。protected(自身と派生クラスのみアクセス可能)が許されている点から抽象クラスはクラスの内部向けルールを定める性質が強い。一方でインターフェースのメンバーはpublicに限定される。インターフェースはInter + Faceの語源通りクラスの外部向けルールを定める性質が強い
1-
あと 86 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.003s