如何将BehaviourScript添加到Unity3D中的实例化GameObject?

时间:2015-05-29 00:59:34

标签: c# unity3d

我正在开发游戏,您可以使用鼠标左键实例化多维数据集。现在我想用箭头键旋转这些实例化多维数据集。我想知道,我如何使用我的Instantiated Cube连接下面的代码! (我的实例化多维数据集正在保存在List btw中。)

我的轮换代码:

    if (Input.GetKey (KeyCode.LeftArrow))
    {
        transform.Rotate(0, 0, rotationAngle * Time.deltaTime, Space.World);
    }

    if (Input.GetKey (KeyCode.RightArrow))
    {
        transform.Rotate(0, 0, - rotationAngle * Time.deltaTime, Space.World);
    }

3 个答案:

答案 0 :(得分:4)

将该代码放在脚本中,并将其命名为RotateOnKeys,然后在脚本中实例化多维数据集,执行以下操作:

// This is the line of code that you're already using to spawn a cube:
GameObject cube = GameObject.Instantiate(cubePrefab) as GameObject;

// This is the line of code needed to attach a script:
cube.AddComponent<RotateOnKeys>();

答案 1 :(得分:3)

与大多数编程相关的事情一样,有几种方法可以做到这一点。

首先,你想把它放在MonoBehaviour中。具体来说,您可能希望它在Update()循环中。像这样:

public class SpinGameObject : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKey (KeyCode.LeftArrow))
        {
            transform.Rotate(0, 0, rotationAngle * Time.deltaTime, Space.World);
        }

        if (Input.GetKey (KeyCode.RightArrow))
        {
            transform.Rotate(0, 0, - rotationAngle * Time.deltaTime, Space.World);
        }
    }
}

如果您想在所有立方体上使用此功能,可以将其直接附加到正在实例化的预制件上。

否则,如果您想要选择要应用它的多维数据集,您可以获得包含多维数据集的实例化GameObject,然后调用以下函数:

void AttachScriptToGameObject(GameObject go)
{
    go.AddComponent<SpinGameObject>();
}

希望有所帮助!

编辑: 很多人回应,所有这些工作:)

答案 2 :(得分:0)

嗯,你正在寻找一种叫做预制件的东西。 预制是预制对象,您可以向其中添加脚本等,然后您可以实例化预制件。一个prefab tutorial link

编辑

或者你可以这样做@Jayson Ash方式。