首页 > 解决方案 > 错误 CS7036:没有给出与所需形式参数“播放器”相对应的参数无法找出代码的问题?

问题描述

我对编码还是很陌生,这个问题让我陷入困境。

我正在关注如何制作开机脚本的教程视频,但由于某种原因,它不起作用。

我一直在寻找解决方案,但它们似乎都不起作用。任何帮助,将不胜感激!

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

public class PowerUpPickupEffect : MonoBehaviour 
{
    public GameObject pickupEffect;

    public float multiplier = 2.0f;

    void OnTriggerEnter2D (Collider2D other)
    {
        if (other.CompareTag ("Player")) 
        {
            Pickup ();
        }
    }

    void Pickup (Collider player) 
    {
        Instantiate (pickupEffect, transform.position, transform.rotation);

        player.transform.localScale *= multiplier;

        Destroy (gameObject);
    }
}

标签: c#unity3d

解决方案


您的方法PickUp需要一个Collideras 参数。

但是:请注意Collider!=Collider2D
它们来自完全两个独立且独立的物理引擎PhysicsPhysics2D!

对于 2D 它应该是

void OnTriggerEnter2D(Collider2D other)
{
    if (other.CompareTag("Player"))
    {
        // pass in the expected argument
        Pickup(other);
    }
}

void Pickup(Collider2D player)
{
    Instantiate(pickupEffect, transform.position, transform.rotation);

    player.transform.localScale *= multiplier;

    Destroy(gameObject);
}

或 3D

void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Player"))
    {
        // pass in the expected argument
        Pickup(other);
    }
}

void Pickup(Collider player)
{
    Instantiate(pickupEffect, transform.position, transform.rotation);

    player.transform.localScale *= multiplier;

    Destroy(gameObject);
}

推荐阅读