LoginSignup
2
0

ざっくりわかるMonoBehaviourと継承

Posted at

はじめに

今回はMonoBehaviour の理解を深めるのが主な目的です
なので継承についての細かい説明は省きます
MonoBehaviour と継承についてざっくり概要を知りたい人向けの記事になってます

継承の概要

オブジェクト指向には三大要素「カプセル化」、「継承」、「ポリモーフィズム」というものがあります
継承はそのうちの1つです、三大要素っていうくらいなのでよく使われてるし使います

継承とは

あるクラスから機能を 継承 して新しいクラスをつくることです

親クラスと子クラス

継承するときに継承元となるクラスを親クラス(基底クラス)といい、継承されるクラスを子クラス(派生クラス)といいます
親クラスを継承したのが子クラスです
この記事では親クラスでやっていきます!

継承のイメージ

矢印の向いてる方が、親クラス ( スライム ) です
image.png
親クラスは子クラスよりも抽象度が高いです
image.png

継承のメリット

子クラスは親クラス の機能をすべて継承しているので共通の処理を書かなくて済みます!
なのでコードの量が減り、機能を追加したときの手間が減るので管理がしやすくなります
エンジニアの大好きな再利用性が向上します

MonoBehaviour

ここからが本題です
image.png
Unityで新しくクラスを作ると絶対に MonoBehaviour がついてくるので結構馴染み深いですよね
馴染み深いわりには MonoBehaviour が一体何者なのかよく知らないけど使ってる人も多いと思います

MonoBehaviourの機能

MonoBehaviourの機能を大きく分けると以下の2つになると思います

イベント関数

Start、Update、FixedUpdate などの特定のタイミングで処理される関数

GameObject

transform、tag、GetComponent などのゲームオブジェクトに関するクラス

GameObject 公式ドキュメント
MonoBehavior 公式ドキュメント

MonoBehaviour とは

ざっくりいうと Unity が提供してくれた Unity で開発するときに必要な機能の盛り合わせクラスです

MonoBehaviour を使わない(継承しない)パターン

上記の通り MonoBehaviour はゲーム開発をする上でほぼ必須級の機能が備わっています、ですが継承しなくてもいいパターンもあります

MonoBehaviourを継承しない = MonoBehaviourの機能を使わない
つまりイベント関数もGameObject関連の機能も使わない(Hierarchyに実体がない)場合です!

具体的にはキャラクターのステータスなどのデータ系です
データ系なら実体が必要ないのでMonoBehaviourを使わなくてもいいしイベント関数も必要ないですよね!

なんでMonoBehaviourアンチがいるのか

前述の通り MonoBehaviour にはたくさんの機能が入っています
クラスに必要以上の機能が入っていると、その機能が使われている可能性を考えないといけなくなります
なので大規模開発やチーム開発をする場合に大きな被害となってしまいます

さいごに

・Unity開発をしていて設計の勉強をはじめた一番最初にぶち当たる壁が MonoBehaviour だったのでまとめてみました
・思ったよりざっくりになってしまいましたが、この記事で MonoBehaviour の概要はわかるようになると思います
・まだ初心者なので勘違いやミスがあると思います、もしあったら教えてもらえると嬉しいです

以上です、お読みいただきありがとうございました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0