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

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

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

Q&A

1回答

593閲覧

Unityでダメージtxtをぴょんと跳ねさせたいです

taxx69xx

総合スコア4

0グッド

0クリップ

投稿2020/07/26 00:46

編集2020/07/26 00:48

Unityでサンプルのたこ焼きゲームを展開して作成しています。

たこ焼きをクリックすると文字"1"を出力しダメージを与える部分まで実装できました。
今回ですが、下記サイトのようにダメージ文字がぴょんって跳ねてくれません、、、(そのまま下に落ちてく)

http://satoukibi.hatenablog.com/entry/2017/02/25/Unity_でダメージUIを作る(2D)

エネミー(たこ焼き)をクリックすると下記[DamegeObj]が生成されるようにし
public void OnMouseDown()
{
〜略〜
// エネミーと同じ位置にダメージ[DamegeObj]を生成
Instantiate(DamegeObj, new Vector3(this.transform.position.x, this.transform.position.y, 0)
, transform.rotation).GetComponent<TextMesh>().text = "1";

その後[DamegeObj]の"1"は出てくるんですが、[DamegeObj]にアタッチした[DamageTextSCR.cs]が動作していない状況なんです。
[DamageTextSCR.cs]のStart()は下記にしてます

// Use this for initialization
void Start()
{
Debug.Log("◼◼DamageTextSCRスタート開始◼◼");

GetComponent<Rigidbody2D>().AddForce(new Vector3(Random.Range(-80, 80), Random.Range(100, 180), 0)); StartCoroutine(DestroyObject()); }

上記の◼◼DamageTextSCRスタート開始◼◼とログに出てくれない事と、あとはエラーではないですが下記警告が出ています。

The referenced script (DamegeTextSDR) on this Behaviour is missing!
UnityEngine.Object:Instantiate(GameObject, Vector3, Quaternion)
Enemy:OnMouseDown() (at Assets/Scripts/Enemy.cs:107)
UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32)

DamegeTextSDRが見つからない?らしいですが、
添付写真を見るとわかる通り、DamejeObjにDamegeTextSDRをアタッチしてるんですよね。

イメージ説明

この状況を打破して、生成された[DamejeObj]に対して、アタッチ済みの[DamageTextSCR.cs]のStart()を動かせるようにするにはどうすれば良いでしょうか?

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

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

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

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

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

guest

回答1

0

以下でどうでしょう。

  1. 警告が出ているスクリプト2つを Remove Component する
  2. 動かしたいスクリプトをあらためてアタッチする
  3. プレハブ(から Hierarchy 上に置いたオブジェクト)を override して変更を元のプレハブに反映させる

override とか変更の反映とかがわからない場合はこの辺の解説動画の後半で説明されてます。

投稿2020/07/26 02:53

bboydaisuke

総合スコア5277

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

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

taxx69xx

2020/07/26 23:12

さっそくありがとうございます。 やってみたんですけど、トラシュー手順[2]のところで下記のエラーが出るんですよね(返信だと画像が貼り付けないんですね泣きます、、TT) Can 't add script Can't add script behaviour AssemblyInfo.cs. The script needs to derive from MonoBehaviour! ググってみたんですけどプロジェクト壊れてるんですかねぇ、、、 でも全部のスクリプトが上記エラーでなくて、GameMgr.csみたいな全然別口のcsファイルならアタッチできるんで、DamegeTextSDR.csが悪いのかなぁと思ってstart()の中を全部コメントアウトしても同じエラーになるんですよね、、 あと、ゲームの再生はできるんですけど、ウィンドウ左下に常にこのエラーが出ていて(詳細は一番したに転記、ぐぐって調べてみました) UnassignedReferenceException: The variable DamegeObj of HpBarCtrl has not been assigned. 上記エラーに対しては、HpBarCtrlのインスペクタにDamegeObjは割り当て済みで、きちんとこのへんの動作は行われてるんですよね(TT) 単純に、そのDamegeObjまではきちんと生成されるけど、そのアタッチができないからぴょんて跳ねないのが聞きたいんですけどこのエラーが出てるのも気持ち悪いなぁ〜って思ってます(TT) コンソールのエラー UnassignedReferenceException: The variable DamegeObj of HpBarCtrl has not been assigned. You probably need to assign the DamegeObj variable of the HpBarCtrl script in the inspector. UnityEngine.Object.Internal_InstantiateSingle (UnityEngine.Object data, UnityEngine.Vector3 pos, UnityEngine.Quaternion rot) <0x146fbca10 + 0x0006a> in <5bcb6821bff24936994feeaed272503d>:0 UnityEngine.Object.Instantiate (UnityEngine.Object original, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation) (at /Users/builduser/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:211) UnityEngine.Object.Instantiate[T] (T original, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation) (at /Users/builduser/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:285) HpBarCtrl.Update () (at Assets/Scripts/HpBarCtrl.cs:35)
bboydaisuke

2020/07/26 23:17

> 返信だと画像が貼り付けないんですね泣きます それは「返信に問題についての追加情報を書かない。質問を随時編集する。」という使い方をするからですね。返信しても私にしか通知が来ませんし、多分私しか読みません。他の人はその情報を目にしないから何か知っていてもサポートできませんし、私も私だけを頼りにされたくはありません。
bboydaisuke

2020/07/26 23:42 編集

> Can't add script behaviour AssemblyInfo.cs. The script needs to derive from MonoBehaviour! そうですね。このエラーは特殊です。AssemblyInfo.cs に対するエラーメッセージになっている点が特殊です。このエラーメッセージはたまに聞きますが私は遭遇したことはありません。検索しても、このエラーに遭遇した人がどのようにして回復したのかは書かれていない(書かれていても間違っている)ようなものしか見つかりませんでした。 以下のリンク先に書かれている方法で Reimport All してみるくらいしか思いつきませんが、それで治るかどうかはわかりません。 https://ekulabo.com/menu-bar-assets-post#outline__4_1
taxx69xx

2020/07/27 02:05

かさねがさねありがとうございます!!確かに!!質問を編集したほうが良いですね! 今回の問題は結構特殊なんですね、ぐぐってもあまり良い回答が出てこなかったのはそういうことですね、、、 さっそく今夜にでもやってみます!本当ありがとうございました(TT)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問