現在スロットゲームを製作しておりますが、スロットの絵柄が揃ったときに打ち上げ花火があがるエフェクトを作成したのですが、作成したエフェクトは他のゲームプロジェクトに紐づけることはできないのでしょうか?
これがunityのgamecontroller設定画面であり、
これがparticleシステムの設定画面です。
私としてはこの花火のようなエフェクトをGamecontrollerにくっつけて、花火が打ちあがるようなエフェクトを出したいとおもっております。
(エフェクトを出すためのコードはGamecontrollerに記入済みです。)
よろしくお願いいたします。
わかりにくい点がありましたら、なんなりとお申し付けいただけると幸いです。
文面を読んで、多分こういう事がしたいのかな?って事で
"unity package化"で調べてみるといいのではないでしょうか?
ありがとうございます。
package化するということは、あの花火のパーティクルをプレハブ化しなくてはならないのですか?
そのままを使いたいならプレハブ化した方が都合が良いのでは?とは思います。
ちょっと気になったので言葉の確認をしたいのですが、他の"ゲームプロジェクト"であってますか?他の"ゲームオブジェクト"でなく?
文面下記の内容としてはゲームオブジェクト、の方に読めるので。
申し訳ありません。
ゲームオブジェクトの間違いでした。失礼しました。
パッケージ化してから「GameController」というオブジェクトにくっつけて
演出をするつもりでした。
ちなみにですがGameControllerというのは、スロットの動きなどのゲーム全体を管理するオブジェクトであります。
パッケージ化についてはとりあえず忘れてください、全く意味が変わってしまいます
prefab化に関してはどちらでも構わないですが、プレハブの理解はありますか?
一度に複数の事を理解しようとすると難しくなりますよ。
エラーやバグが出た時に、どれに対するものなのかが分からないでしょうから。
GameControllerから操作したいという事なら、
public GameObject hanabi;
を定義してインスペクタから入れて、それを操作するのが手っ取り早いと思うのですが、、、
エフェクトを出すコードがGamecontrollerに記入済みって意味もどうとらえたらいいか分からないです。
プレハブはオブジェクトを複製すること、ということでよろしいでしょうか?
なお、コードがGamecontrollerに記入済みというのは
GetComponent<ParticleSystem>().Play(); をいうコードをGameController.csというスクリプトに記述した、という意味であります。
スロットがそろった時の条件スクリプトがGameController.csの中にあるのですが、スロットの絵柄がそろった際にそれらのエフェクトが発生するようにGetComponent<ParticleSystem>().Play();を先に記述した、という意味であります。
プレハブは一言で説明すると設計図、ですかね。それを元に生成、複製も簡単にって感じです。
生成して初めてモノ(オブジェクト)が存在する事になります。インスタンスとなります。
Hierarchyに配置したオブジェクトは勝手に生成されてインスタンス化された状態です。
GetComponent<ParticleSystem>().Play();を記述したって事はここでPlayしたい、という願望でしょうか?それとも取得出来ていて再生されないって事ですか?
ここは質問とは関係なさそうなので無視してましたが、SubEmitterは子オブジェクトじゃないとダメ!みたいなエラーが出てますがこちらが原因という事は無いですよね?こちらはほとんど触った事が無い機能なのでエラーの原因など回答できないです。
取得できている、という前提ならスタート時を非Activeな状態として、GetComponent<ParticleSystem>().Play();を.SetActive(true);としてActiveに変更する事で再生が可能です。
ただGamecontrollerから操作する、って事なので何かしらの参照が必要です。
基本的に知らない相手に指示は出せません。相手を知るための方法がGetComponentだったり、GameObject.Findだったり、他にもいろいろありますがそういう意味です。
なのでGetComponentの前に参照している変数が必要になりますが、そこは大丈夫でしょうか?
hanabi.GetComponent<ParticleSystem>().Play();みたいな感じです。
hanabiは、フィールドにpublic GameObject hanabi;と作り、インスペクタから登録します。
ここでインスペクタから登録する事によってGamecontrollerがhanabiを知る事が出来ます。
あなたの回答
tips
プレビュー