🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

7441閲覧

unity スクリプトの分け方について

nye_1212

総合スコア47

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2019/11/11 01:36

編集2019/11/11 01:37

unity でゲームを開発する際、スクリプトを分けすぎると変数を他のスクリプトから
読み込むことが多くなって面倒くさいのですが、スクリプトは何を基準にして
分けるべきでしょうか?

またゲームマネージャーにはゲームのどの部分のスクリプトを書くべきでしょうか?

スクリプトの、おすすめの整理の仕方があったら教えて頂きたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず前提の話から。
Unityはコンポーネント志向なので原則は**「1役割1スクリプト」**です。
ここで言う役割とは「このオブジェクトが〇〇という振る舞いが出来るようにする」的な意味合いです。

標準のコンポーネントを見ると分かりますが、
例えばRigidbodyは「そのオブジェクトを物理的な物体にする役割」を与え、
〜Rendererは「そのオブジェクトをカメラに映る物体にする(要は「見えるようにする」)役割」を与えています。

ただ、分割するかどうか悩む要素もあると思います。
例えば「ユーザーの入力に合わせてキャラクターが動く」という処理があった時、
上下前後の移動とジャンプを同じスクリプトに入れるのか、別スクリプトに分けるのか。
コンポーネント論的な意味で分割出来るかの判断は**「AはするがBはしないオブジェクトを作る時、コンポーネントの付け外しだけでそれが実現出来るか」**という尺度にすると分かりやすいと思います。

とは言え分離させると逆にやりづらいということもあると思います。
なので結論としてはぶっちゃけ**「実装と運用が楽な方」**かなぁと。

出来るだけ実装や修正や変更が容易になるように、かつ長過ぎず短過ぎないコードを考えるのが**「設計」**なので、そこは要件や仕様に合わせて上手いこと考えましょう。
この辺は「疎結合」とか「カプセル化」などオブジェクト志向・コンポーネント志向系の理念を学ぶと分かると思うので調べてみてください。

ゲームマネージャーもそういう特別な仕組みがある訳じゃないので、好きにやってください。
「みんなが参照したい情報は1つのスクリプトに集約させておけば、そこだけを見に行けばいいから楽だよね」「1つのオブジェクトが他オブジェクトの管理をしておけば、他オブジェクト同士はお互いを気にしないでいいから楽だよね」ということでしかないです。

投稿2019/11/11 02:17

sakura_hana

総合スコア11427

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nye_1212

2019/11/11 03:06

ありがとうございます!参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問