初投稿させていただきます。
#エラーまでの流れ
unityを使っていてC#スクリプトを変更し、ゲーム再生ボタンを押したところConsole画面に"the referenced script on this behavior is missing..."という表記が示され、再生中にスクリプト内のメソッドが実行されませんでした。
プロジェクトメニューにある問題のスクリプトを確認してみると他のスクリプトのアイコンは白いペラ紙に大きくC#と表記されている(今まで通り)のに対し問題のスクリプトは白いペラ紙に何も表記されていないアイコン(もともとは他のスクリプトと同じくC#の表記があったにもかかわらず)に変わっていました。
そのスクリプトを問題のオブジェクトにアタッチしようとしてもマウスカーソルが車両通行止めのようなものに切り替わりアタッチすることができませんでした。
#調べたこと
スクリプトを再度適用すれば良いということはわかったのですが肝心の適用方法がわからないこととスクリプトのアイコンが白紙に切り替わった状態の名称がわからず調べようが無い状態です。
#実現したいこと
ゲームオブジェクトにスクリプトをアタッチし、指示した命令通り動かしたいです。
まだまだわからないことが多いのでうまく説明できたかわかりませんが解決方法がわかる方をおまちしております。????♂️
質問は編集できます
追記修正しましょう
すみません、まだ使い慣れてなくて笑。
編集してみたのでよろしくお願いします。
別のエラーは出ていないですか?
特に出てなかったと思います(現在console画面の履歴が消えてしまったのではっきりとは確認できないです。)。
エラーの表記が連続していたためボタン入力毎に表示されているという見解でみてます。
> unityを使っていてC#スクリプトを変更し、
とありますが、具体的にどんな変更をしたのでしょうか?
2Dアクションゲームでキャラクターの攻撃に対して敵のアニメーションが変更する処理です。
void Attack()
{
Collider2D[] hitEnemies = Physics2D.OverlapCircleAll(attackPoint.position, attackRadius, enemyLeyer);
foreach (Collider2D hitEnemy in hitEnemies)
{
Debug.Log(hitEnemy.gameObject.name + "に攻撃");
//以下追加で加えた処理です。
hitEnemy.GetComponent<enemyManager>().OnDamage();
}
}
__OnDamage()の内容__
この処理は別のスクリプトに記載しています。
public void OnDamage()
{
animator.SetTrigger("IsHeart");
}
敵アニメーション作成→敵アニメーションを実行する処理OnDamageを書く→OnDamageを攻撃時に引き出す処理を問題のスクリプトに記載→セーブ
といった流れです。
回答2件
あなたの回答
tips
プレビュー