unity3d 游戏对象,发送消息不工作,我怎么修复它?

hts6caw3  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(101)

我试着做一个脚本,当玩家经过一个物品时,它会激活它在玩家身上的效果。但是这个错误出现了:这是我的代码:`

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

public class Bonus : MonoBehaviour
{
    public string name;
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if(collision.CompareTag("Player"))
        {
            collision.SendMessage(name, null, SendMessageOptions.RequireReceiver);
            Destroy(gameObject);
        }
    }
}

`
我已经试过添加

SendMessageOptions.RequireReceiver

但没有成功

csga3l58

csga3l581#

错误试图告诉您的是:
在您的collisionGameObject上,没有附加任何组件来实现一个方法,该方法调用了name的值(在您的示例中为doubleSpeed)。
默认情况下,该选项已经是SendMessageOptions.RequireReceiver,如果没有,则会收到该错误消息。
接收方法可以选择不使用任何参数来忽略参数。如果options设置为SendMessageOptions.RequireReceiver,则在任何组件都未拾取消息时将输出错误。
如果您想忽略没有接收器的情况,则可以传入SendMessageOptions.DontRequireReceiver
通常,不要使用SendMessage,而是直接获取组件并调用方法

相关问题