C# 玩家don';当他在运动时,他不能发射射弹
当我投篮时,球员站着不动,射弹可以正常工作,但当我向前移动或跳跃时,射弹不能工作 我想这是因为我的子弹代码。我是Unity的初学者,所以我认为代码有问题C# 玩家don';当他在运动时,他不能发射射弹,c#,unity3d,C#,Unity3d,当我投篮时,球员站着不动,射弹可以正常工作,但当我向前移动或跳跃时,射弹不能工作 我想这是因为我的子弹代码。我是Unity的初学者,所以我认为代码有问题 void Update() { transform.Translate(Vector3.right * speed * Time.deltaTime); } private void OnTriggerEnter2D(Collider2D other) { Destroy(gameObject); } 我很确定我知道你为什么
void Update()
{
transform.Translate(Vector3.right * speed * Time.deltaTime);
}
private void OnTriggerEnter2D(Collider2D other)
{
Destroy(gameObject);
}
我很确定我知道你为什么会遇到这个问题,但是我会花一些时间告诉你将来如何调试这个问题 所以你说的是“射弹不起作用”,这并不意味着什么,但我假设它的意思是“它们不会繁殖” 这可能是因为两个原因:
private void OnTriggerEnter2D(Collider2D other)
{
Debug.Log(other.name);
Destroy(gameObject);
}
它可能是播放器,所以你不希望播放器与自己的子弹相撞。您可以通过两种方式解决此问题:
if(other.tag!=“Player”)
Physics.IgnoreCollision(MyCollider,PlayerCollider)在Start()方法中排除子弹和播放器之间的碰撞代码>(或物理2D,如果是2D)
private void OnTriggerEnter2D(Collider2D other)
{
if (other.tag != "Player")
{
Destroy(gameObject);
}
}
然后转到玩家对象,创建一个名为“玩家”的新层,并将其分配给玩家对象。我猜它与玩家碰撞器发生碰撞,您可以使用CompareTag添加一个检查-