在 Unity3D 中抛出 GameObject 差异 C# & JavaScript

Throw GameObject diferences C# & JavaScript at Unity3D

我正在使用 C# 开发 Unity 游戏。我需要从主摄像头扔出一个物体。尝试使用 Javascript 似乎可行,但我需要使用 C# 来完成,并且模拟相同的脚本行为它不起作用。这些是我为此使用的代码:

Javascript(有效)

var vel : int = 2;      
var objeto : Transform;

function Start () {
}

function Update () {
    if (Input.GetKeyDown("mouse 1")){
        var generar = Instantiate (objeto, transform.position, Quaternion.identity);
        generar.GetComponent.<Rigidbody>().AddForce(transform.forward * 2000 * vel);
    }
}

C#(创建对象,但不施加力)

using UnityEngine;
using System.Collections;

public class LanzarCX : MonoBehaviour {

    public Transform objeto;
    public int vel= 2;

    void Start () {
    }

    void Update () {
        if (Input.GetKeyDown("mouse 1")){
            GameObject generar = Instantiate (objeto, transform.position, Quaternion.identity) as GameObject;
            generar.GetComponent<Rigidbody>().AddForce(transform.forward * 2000 * vel);
        }
    }
}

我在两种情况下都使用 2 作为 vel 值和相同的预制件。我做错了什么?谢谢

您检查过您的刚体是否处于活动状态吗?根据 Unity API: "Force can be applied only to an active rigidbody. If a GameObject is inactive, AddForce has no effect." 此外,在您的 javascript 代码中您没有乘以 vel