質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

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

Unity3D

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

Unity

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

Q&A

解決済

4回答

1169閲覧

publicにスクリプトを指定したい

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

Unity3D

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

Unity

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

0グッド

0クリップ

投稿2017/11/14 07:28

編集2017/11/14 07:29

###やりたいこと

public GameObject object;
とすればInspectorでゲームオブジェクトを指定できますが、
ゲームオブジェクトではなくスクリプトを指定したいです。
方法はありますか?

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

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

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

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

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

guest

回答4

0

ベストアンサー

public Component AddComponent(Type componentType);を使って

C#

1public MonoBehaviour bulletScript; 2 3// 中略 4 5bullet.AddComponent(bulletScript.GetType());

なんていうのはどうでしょうか?
bulletScriptにインスペクタからスクリプトをセットするために、ダミーのゲームオブジェクトに弾にアタッチしたいスクリプトをアタッチしてシーンに配置しておき、そのオブジェクトは非アクティブにしておいて他に影響を与えないようにしておくのがいいかと思います。

投稿2017/11/14 12:14

Bongo

総合スコア10807

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

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

退会済みユーザー

退会済みユーザー

2017/11/14 12:42 編集

できました!ありがとうございます!! 素晴らしい発想です!
guest

0

public HogeScirpt sc;
bullet.AddComponent<HogeScirpt>();

こんな感じでpublicにいれればよいですね。
sc = bullet.GetComponent<HogeScirpt>();

投稿2017/11/14 10:56

kaji

総合スコア648

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

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

0

スクリプトを指定したいとのことですが、どのような目的で、どういった指定をしたいのでしょうか?

もし、すでに何らかのゲームオブジェクトにアタッチしているスクリプト(例:HogeScript)をInspector上で指定したいのであれば

C#

1public HogeScript hogeScript;

とすればよいです。

投稿2017/11/14 08:17

fiveHundred

総合スコア9797

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

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

退会済みユーザー

退会済みユーザー

2017/11/14 09:16

敵の武器から弾を発射させて発射された弾にダメージを与えるスクリプトを追加させる ↑これを敵自体についているスクリプト一つで制御(?)しようとしています なので、publicに弾が発射する位置、弾の色の種類、ダメージを与えるスクリプトを指定して、 指定した色の弾を 指定した位置から発射させて その弾に指定したスクリプトを付ける という感じです ダメージを与えるスクリプトは、1ダメージ、2ダメージ、3ダメージ、、、~~ があり 弾の種類も複数あります。(色違い) 武器の種類を増やすのに楽になると思っているのでこのやり方にしています。 分かりにくかったらすみません
退会済みユーザー

退会済みユーザー

2017/11/14 09:33 編集

追記 発射する弾 = bullet; public 追加するスクリプト; bullet.AddComponent<publicで指定したスクリプト>(); こんな感じにやろうと思っています
guest

0

C#

1private Hogeclass hogeclass; 2 3hogeclass = new Hogeclass();

すごく雑に書きましたがこんな感じでクラス名を指定したらいいですよ。

投稿2017/11/14 07:54

hien

総合スコア69

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

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

fiveHundred

2017/11/14 08:12

質問者さんのいうスクリプトがどのようなものかは分かりませんが、UnityではMonoBehaviourを継承することが多く、それをnewするのは適切ではありません(warningが出ます)。 もし、newしたいのであれば、MonoBehaviourを継承しないことになりますが、それだとゲームオブジェクトにアタッチできなくなり、MonoBehaviourの各機能も使えなくなるので、それらが必要である場合はこの方法は使えません。
hien

2017/11/14 08:18

雑すぎましたね... 補足ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問