如何在2D游戏中使用rigidbody.addforce作为子弹

时间:2015-02-02 16:58:04

标签: unity3d unity3d-2dtools rigid-bodies

我是团结的初学者,我想重建像蠕虫这样的基于2D回合的游戏。我有一个炮塔和一颗子弹。我遇到的问题是我无法使用此代码,因为我在2D中使用了碰撞器和刚体,我在文档中检查了2D中有一个rigidbody.addforce但是我不明白如何使用它。这个问题可能很愚蠢,但请耐心等待。

using UnityEngine;
using System.Collections;
public class Bullet : MonoBehaviour {
    public float speed;

    // Use this for initialization
    void Start () { 
        rigidbody.AddForce(5, 5, 0, ForceMode.Impulse);
    }

    // Update is called once per frame
    void Update () {
        transform.Translate(speed * Time.deltaTime, 0, 0);
    }

    void OnCollisionEnter(Collision c){
        if (c.gameObject.tag == "Platform") {
            Destroy(gameObject);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

只需改变一下:

    rigidbody.AddForce (5,5,0,ForceMode.Impulse);

到2D等价物:

    rigidbody2D.AddForce(new Vector2(5, 5), ForceMode2D.Impulse);

此外,如果您在游戏对象上附加了2D对撞机,则需要使用OnCollisionEnter2D代替OnCollisionEnter

PS。如果您只想要力量影响速度,请删除此行:

    transform.Translate(speed * Time.deltaTime, 0, 0);