obsidian/笔记文件/2.笔记/GameObject.CreatePrimitive.md
2025-03-26 00:02:56 +08:00

2.0 KiB
Raw Permalink Blame History

#unity/日常积累

GameObject.CreatePrimitive

public static GameObject CreatePrimitive (PrimitiveType type);

参数

type

要创建的原始对象的类型。

描述

创建一个具有原始网格渲染器和相应碰撞体的游戏对象。

using UnityEngine;

public class Example : MonoBehaviour
{
    // Create a plane, sphere and cube in the Scene.

    void Start()
    {
        GameObject plane  = GameObject.CreatePrimitive(PrimitiveType.Plane);

        GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.position = new Vector3(0, 0.5f, 0);

        GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        sphere.transform.position = new Vector3(0, 1.5f, 0);

        GameObject capsule = GameObject.CreatePrimitive(PrimitiveType.Capsule);
        capsule.transform.position = new Vector3(2, 1, 0);

        GameObject cylinder = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
        cylinder.transform.position = new Vector3(-2, 1, 0);
    }
}

__注意__.CreatePrimitive 在运行时可能失败。发生此问题的原因是 您的项目在运行时未引用以下组件:MeshFilterMeshRenderer 和 BoxCollider 或 SphereCollider。避免此崩溃的建议方式是 声明这些类型的私有属性。此剥离系统 将识别它们的用途,这会将它们包含在此版本中,这样便不会删除这些 组件。