私は単純なメッセージボックスを作成し、ユーザにメッセージを表示する必要があります。それはプレハブであり、いくつかのことを行います。ほとんどの場合アニメーションはインスタンシエーション時にになります。インスタンス化時にコードを実行するために、私はStart()
関数を使用しました。 私は何をメッセージするかを既に知っていたが、Start()
の前に実行され、instantiation
に実行され、パラメータを取ることができるconstructor
のようなものが必要なときに機能しました。 ここでは、インスタンス化してメッセージを設定してすべてを実行できることを十分に認識しています.3行のコードを使用してインスタンス化しますが、別の適切なソリューションがあるかどうか不思議です。私がネット上で見つけたのは、インスタンス化してから何かをすることでした。インスタンシエーション時のユニティパスパラメータ
EDIT:メッセージボックスの
私の呼び出しに表示する:
var timeBox =
Instantiate(messageBox, penaltySpawnLoc.position, penaltyPrefab.transform.rotation, transform);
var scr = timeBox.GetComponent<MessageBox>();
scr.OnCreated(message);
OnCreated
は、初期化を行い、アニメーションなので、基本的にすべてを示しています。 しかし、にはがあり、表示する内容を知りたい場合は入力してください。「オンザフライ」でテキスト値を設定する必要はありません。メッセージボックスが表示されていてもテキストが表示されていないときは奇妙なちらつきが表示されますセット。
EDIT2:
最後のパラメータtransform
Instantiation
で、これはUIスクリプトであるとして、このスクリプトをオンにするCanvas
です。このパラメータは、新しくインスタンス化されたGameObject
がその子であることを意味します。
EDIT3:
タイムボックスがmessageBox
のインスタンスだけで、彼らはGameObject
sがあります。 メッセージボックスは1つだけです。その目的は、メッセージとともに表示され、0.5秒後にフェードアウトして移動した後です。移動した後、それはそれ自身を破壊する。
簡略化したい3行のコードを表示することは理にかなっています。 – Programmer
十分に公正で、すぐに編集できます。 – agiro
申し訳ありませんがそれは4行です、私はラインを壊しました。 – agiro