在Unity3D上抛出GameObject差异C#和JavaScript

本文关键字:差异 JavaScript GameObject Unity3D | 更新日期: 2023-09-27 18:36:11

我正在使用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#(它创建 de 对象,但不应用强制)

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 值,并且在两种情况下都使用相同的预制件。我做错了什么?谢谢

在Unity3D上抛出GameObject差异C#和JavaScript

您是否检查过您的刚体是否处于活动状态?根据Unity API: "力只能施加到主动刚体上。如果游戏对象处于非活动状态,则 AddForce 不起作用。此外,在你的javascript代码中,你没有乘以vel