0

スポーンする発射体を作成しようとしていますが、それがプレイヤーに当たると、彼は破壊されます。発射物は「Instantiate」コマンドで生成され、「複製されたゲームオブジェクト」になることに言及する必要があります。スクリプトでは、発射体がタグ「プレーヤー」を持つ別のゲームオブジェクトに当たった場合、それが当たったゲームオブジェクトは破壊されますが、コードを実行して発射体がプレーヤーに当たった後、プレーヤーは破壊されませんでした。確認したところ、タグに「プレイヤー」とあります。コードにデバッグ コマンドを挿入したところ、タグが検出されないことがわかりました。投射物スポナーのスクリプトと投射物自体は別なので、問題のあるスクリプトなので投射物のスクリプトのみを表示します。私はスクリプトがそうではないことに言及しなければなりません」

public class Bulletboi : MonoBehaviour
{
    public float speed;
    private Transform player;
    private Vector2 target;
    public GameObject Elven;

    void Start()
    {
        player = GameObject.FindGameObjectWithTag("player").transform;
        target = new Vector2(player.position.x, player.position.y);
    }

    void Update()
    {
        transform.position = Vector2.MoveTowards(transform.position, target, speed * Time.deltaTime);
        if(transform.position.x == target.x && transform.position.y == target.y)
        {
            DestroyProjectile();
        }
    }
    void OnEnterTrigger2D(Collision2D other)
    {
        if (other.gameObject.tag.Equals("player"))
            {
            Debug.Log("bbbb");
            DestroyProjectile();
            Destroy(other.gameObject);
        }
    }
    void DestroyProjectile()
    {
        Destroy(gameObject);
    }
}

4

1 に答える 1

0

気にしないで、スクリプトを少し変更することに決め、それをプレーヤーに配置して、発射体のタグを検出するようにしましたが、今では機能します。

于 2020-09-24T11:57:26.057 に答える