我有一个播放器,我想扔一个“附加”到播放器的物品。问题是两者都有rigidbody2D 和Collider 组件。我想扔的物品是玩家,它必须与地面和其他东西发生碰撞。(播放器除外)
这是我尝试过的:
if (Input.GetButtonDown ("Fire1") && canThrowCandle) {
Candle.rigidbody2D.isKinematic = false;
if (faceingRight)
Candle.rigidbody2D.AddForce(new Vector2(400f, 400f));
else if (!faceingRight)
Candle.rigidbody2D.AddForce(new Vector2(-400f, 400f));
Candle.collider2D.enabled = true;
canThrowCandle = false;
}
然后如果玩家与物品(蜡烛)发生碰撞,它会再次与玩家发生碰撞:
void OnCollisionEnter2D(Collision2D coll){
if (coll.gameObject.name == "Candle") {
canThrowCandle = true;
Candle.rigidbody2D.isKinematic = true;
Candle.collider2D.enabled = false;
}
还有代码(CandleController)控制我想抛出的item的位置:
void Update () {
if (GameObject.Find ("Player").GetComponent<PlayerController> ().canThrowCandle)
transform.position = new Vector3 (player.transform.position.x, player.transform.position.y, -0.01f);
}
所以问题是,我怎样才能做到这一点?