错误CS0138:“使用名称空间”指令只能应用于名称空间; 'Collision2D'

时间:2019-01-26 12:38:22

标签: c# visual-studio unity3d

我试图为移动平台制作一个脚本,使Player可以在该平台上保持“阻塞”。但是当我保存脚本时,它向我显示了以下内容:错误CS0138:“使用命名空间”指令只能应用于命名空间; “ Collision2D”是一种类型,而不是名称空间。考虑使用“使用静态”指令代替

脚本是:

using UnityEngine;
using UnityEngine.Collision2D;

public class OnMovingPlat : MonoBehaviour
{

    [SerializeField]
    private Vector3 velocity;

    private bool moving;

    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.WasWithPlayer())
        {
            moving = true;
            collision.collider.transform.SetParent(transform);
        }
    }

    private void OnCollisionExit2D(Collision2D collision)
    {
        if (collision.WasWithPlayer())
        {
            collision.collider.transform.SetParent(null);
        }
    }

    private void FixedUpdate()
    {
        if (moving)
        {
            transform.position += (velocity * Time.deltaTime);
        }
    }
}

我该怎么办?

1 个答案:

答案 0 :(得分:0)

接缝Collision2D成为类型。您可能会在“ UnityEngine”命名空间下意外地创建一个名为“ Collision2D”的类名。