我试图在游戏中,玩家在空中射击,并收集点与它碰撞。我希望我的球员摧毁点时,它与它碰撞。但是当播放器与它碰撞时,播放器只会弹开。
这是我的PointCollection脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PointColliection : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.CompareTag("Point"))
{
Destroy(other.gameObject);
}
}
}
这是我的播放器脚本
using UnityEngine;
public class Player : MonoBehaviour
{
[HideInInspector]
public Rigidbody2D rb;
[HideInInspector]
public CircleCollider2D col;
[HideInInspector] public Vector3 pos { get { return transform.position; } }
void Awake ()
{
rb = GetComponent<Rigidbody2D> ();
col = GetComponent<CircleCollider2D> ();
}
public void Push (Vector2 force)
{
rb.AddForce (force, ForceMode2D.Impulse);
}
public void ActivateRb ()
{
rb.isKinematic = false;
}
public void DesactivateRb ()
{
rb.velocity = Vector3.zero;
rb.angularVelocity = 0f;
rb.isKinematic = true;
}
}
1条答案
按热度按时间5w9g7ksd1#
您正在使用OnTriggerEnter2d函数,但您说游戏对象反弹玩家。这意味着你还没有设置对撞机触发。你也在检查点脚本中的碰撞,所以其他碰撞器的标签是Player而不是Point。
或者把这个放到播放器脚本里面