LoginSignup
uuumkmk
@uuumkmk (み)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Unityで敵を攻撃できるように実装したいです。

Q&AClosed

解決したいこと

敵に攻撃するイベントを実装したいです

例)
Unityちゃんに剣を持たせ、敵と戦うようなゲームを作っています。
実装中にエラーが発生しました。
解決方法を教えて下さい。

発生している問題・エラー

Assets/unity-chan!/Unity-chan! Model/Scripts/ProcessCharaAnimEvent.cs(8,13): error CS0246: The type or namespace name 'CharaAnimEvent' could not be found (are you missing a using directive or an assembly reference?)

該当するソースコード

c# 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class ProcessCharaAnimEvent : MonoBehaviour
{
    private CharaAnimEvent uc;
            [SerializeField]
    private CapsuleCollider capsuleCollider;

  private  void Start()
    {
        UnityChan = GetComponent<UnityChanControlScriptWithRgidBody>();

    }

    void AttackStart()
    {
        UnityChan.enabled = true;


    }

    void AttackEnd()
    {
        UnityChan.enabled = false;

    }

    void StateEnd()
    {
        UnityChan.SetState(UnityChan.MyState.Normal);
    }

    public void EndDamage()
    {
        UnityChan.SetState(UnityChan.MyState.Normal);
    }


}

自分で試したこと

名前空間を検索しました、

0

2Answer

しかし、また別のエラーが出てきてしまいました。privateを消しても直りませんでした。

Assets/unity-chan!/Unity-chan! Model/Scripts/ProcessCharaAnimEvent.cs(11,5): error CS1585: Member modifier 'private' must precede the member type and name

このエラーの場合、だいたいは直前の行の記載方法に誤りがあるパターンです。
どのような修正をしたか記載してください。

1

Comments

  1. @uuumkmk

    Questioner
    ご回答ありがとうございます!
    かしこまりました。
    こちらになります。
    ’’’
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;


    public class ProcessCharaAnimEvent : MonoBehaviour
    {
    private UnityChanControlScriptWithRgidBody

    [SerializeField]
    private CapsuleCollider capsuleCollider;







    private void Start()
    {
    UnityChanControlScriptWithRgidBody = GetComponent<UnityChanControlScriptWithRgidBody>();

    }

    void AttackStart()
    {
    capsuleCollider.enabled = true;


    }

    void AttackEnd()
    {
    capsuleCollider.enabled = false;

    }

    void StateEnd()
    {
    UnityChanControlScriptWithRgidBody.SetState(UnityChan.MyState.Normal);
    }

    public void EndDamage()
    {
    UnityChanControlScriptWithRgidBody.SetState(UnityChan.MyState.Normal);
    }


    }
    ’’’
  2. ★部分参照。
    ';'だけ削除したのであれば、エラー内容が変わるだけで解決にはなりません。
    型と変数名はセットで定義しましょう。(private/public は必要に応じて適切なものを)

    private UnityChanControlScriptWithRgidBody
    ★変数名は?もしかしてこれが変数名なら型は?

    [SerializeField]
    private CapsuleCollider capsuleCollider;

    ※そもそも"UnityChanControlScriptWithRgidBody" はクラス名でしょうか…
    start 内で変数のように扱っています。

(質問への回答ではまったくないですが、「こうすると質問者も回答者もハッピーになれる」なアドバイスを)

コメントではMarkdownの書式指定が使えますが、コメントへの返信はテキストのみ

残念なことに。
そのため質問者の「こう変えました!」は本文に追記する方がわかりやすいです。
「他の人がすでに解決してることに気づかず回答する」といった重複も防げるので。

変更量が少ない場合は変更点のみを書く

Diffと他の言語のシンタックスを同時に使う

```diff_c_sharp
- private UnityChanControlScriptWithRgidBody;
+ private UnityChanControlScriptWithRgidBody
```

↓こうなる

- private UnityChanControlScriptWithRgidBody;
+ private UnityChanControlScriptWithRgidBody
1

Comments

  1. @uuumkmk

    Questioner
    ご回答ありがとうございます!
    そのような技術があったとは知りませんでした
    ありがとうございます。今後試していけたらとおもいます。

Your answer might help someone💌