簡體   English   中英

Unity3d向菜單項中的對象添加RigidBody

[英]Unity3d Adding RigidBody To The Object in MenuItem

我為Unity3d編寫了外部腳本,但有一個問題。 此問題是將RigidBody添加到MenuItem中的對象。 這是我的代碼:

[MenuItem("NewTool/Physics/Cube (RigidBody)", false, 10)]
static void CubePhysButton(MenuCommand menuCommand) {

    GameObject gameCubePhys = GameObject.CreatePrimitive(PrimitiveType.Cube);
    Rigidbody cubePhys = gameCubePhys.GetComponent<Rigidbody>();
    cubePhys.AddForce(1, 1, 1);
    GameObjectUtility.SetParentAndAlign(gameCubePhys, menuCommand.context as GameObject);
    Undo.RegisterCreatedObjectUndo(gameCubePhys, "Create " + gameCubePhys.name);
    Selection.activeGameObject = gameCubePhys;


}

這是Unity3d日志:

MissingComponentException:“ Cube”游戲對象沒有附加“ Rigidbody”,但是腳本正在嘗試訪問它。 您可能需要向游戲對象“立方體”添加一個剛體。 或者您的腳本需要在使用組件之前檢查組件是否已連接。 UnityEngine.Rigidbody.AddForce(Vector3力,ForceMode模式)UnityEngine.Rigidbody.AddForce(單x,單y,單z)(位於C:/buildslave/unity/build/Runtime/Dynamics/ScriptBindings/Dynamics.bindings.cs: 171)CrossX.CubePhysButton(UnityEditor.MenuCommand menuCommand)(在Assets / Editor / CrossX.cs:68)

我該如何解決這個問題?

GameObject.CreatePrimitive創建帶有網格渲染器,網格過濾器和對撞機的GameObject。 它不會添加RigidBody。 只需自己添加一個即可:

GameObject gameCubePhys = GameObject.CreatePrimitive(PrimitiveType.Cube);
Rigidbody cubePhys = gameCubePhys.AddComponent<Rigidbody>();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM