c# - 错误 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);
}
}
}
我能做些什么 ?
解决方案
Seams Collision2D 成为一个类型。您可能会不小心在“UnityEngine”命名空间下创建一个名为“Collision2D”的类名。
推荐阅读
- python - 使用 lambda 按姓氏对作者姓名进行排序
- html - Excel VBA宏在网站上上传文件
- java - 数据集过滤器以意想不到的方式工作
- php - 使用 Sentinel 时不支持 Redis HMGET
- mysql - 如何在 Docker 上使用与 MySQL 的加密连接
- sql - 获取 SQL Server 中每个插入的 id
- android - 有没有办法通过点击网页中的按钮来触发后退按钮?
- c++ - 从用户那里获得无限量的输入,而不是打印最大的 3 ,而不使用数组
- python - SSH 终端中的 sudo 权限被拒绝
- javascript - ValidationError: RFDeviceId: Path `RFDeviceId` 是必需的