英文:
Namespace '<global namespace>' already contains a definition for 'PlayerCollision'
问题
错误:
> Assets\Scripts\PlayerCollision.cs(4,14): error CS0101: 命名空间 '<全局命名空间>' 已经包含了 'PlayerCollision' 的定义
using UnityEngine;
public class PlayerCollision : MonoBehaviour {
void OnCollisionEnter (Collision collisionInfo)
{
if (collisionInfo.collider.tag == "Obstacle")
{
Debug.Log("我们撞到了某物");
}
}
}
英文:
Error:
> Assets\Scripts\PlayerCollision.cs(4,14): error CS0101: The namespace '<global namespace>' already contains a definition for 'PlayerCollision'
using UnityEngine;
public class PlayerCollision : MonoBehaviour {
void OnCollisionEnter (Collision collisionInfo)
{
if (collisionInfo.collider.tag == "Obstacle")
{
Debug.Log("We hit something");
}
}
}
答案1
得分: 1
你不能将MonoBehaviour
脚本命名为与内部名称(PlayerCollision)相同。
尝试使用前缀,例如:
public class MyPlayerCollision : MonoBehaviour {
英文:
You cannot name the MonoBehaviour
script the same as an internal name(PlayerCollision).
Try a prefix like My:
public class MyPlayerCollision : MonoBehaviour {
答案2
得分: 0
你可以将你的 PlayerCollision
放在自己的命名空间中(为了避免其他命名空间问题,也可以对项目中的其他类采取相同的做法):
using UnityEngine;
namespace MyGame
{
public class PlayerCollision : MonoBehaviour {
// 在这里放入你的代码
}
}
英文:
You can put your PlayerCollision
in a namespace of its own (and to avoid other namespace issues, do the same for other classes in your project):
using UnityEngine;
namespace MyGame
{
public class PlayerCollision : MonoBehaviour {
//your code here
}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论