首页 > 解决方案 > 错误 CS0138:“使用命名空间”指令只能应用于命名空间;'碰撞2D'

问题描述

我试图为移动平台制作一个脚本,播放器可以在其中保持“被阻止”。但是当我保存脚本时,它向我显示:`error CS0138: A 'using namespace' directive can only be applied to namespaces; “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);
        }
    }
}

我能做些什么 ?

标签: c#visual-studiounity3d

解决方案


Seams Collision2D 成为一个类型。您可能会不小心在“UnityEngine”命名空间下创建一个名为“Collision2D”的类名。


推荐阅读