携手创作,共同成长!这是我参与「日新计划 8 月更文挑战」的第1天,点击检查活动详情

关于作者

众所周知,人生是一个绵长的流程,不断克服困难,不断反思行进的进程。在这个进程中会产生许多关于人生的质疑和思考,所以我决议将自己的思考,经验和故事悉数分享出来,以此寻找共鸣!!!

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、资料、源码、游戏等)

欢迎重视公众号【空名先生】获取更多资源和沟通!

条件

这是小空坚持写的Unity新手向系列,欢迎品尝。

小空为了方便更多的人(新手)看理解,运用的汉字,真实项目尽量运用英文规矩昂。

新手(√√√)

大佬(√)

实践进程

今天小空带大家学习Unity创立游戏物体的常用几种办法。一定要紧记。

构造办法

直接运用new的形式来创立一个的空仅带有Transform的GameObject。

参数为创立的游戏物体的名字叫什么。

void Start()
{
    GameObject testOne = new GameObject();
    GameObject testTwo = new GameObject("修仙");
    //能够增加组件
    testOne.AddComponent<BoxCollider2D>();
    testTwo.AddComponent<MeshRenderer>();
}

Unity技术手册 - 创建物体有几种方式?

从图中能够看出,现将脚本挂载在一个物体上,然后运转就会在当前场景创立两个物体,并且能够随时给物体增加其他组件。停止运转后物体会主动毁掉。

Instance

我相信也是常用的办法,有时分在开发的时分,能够有个类专门都是各式各样的物体指向,然后其他地方直接引证,就像Java里面的静态相同。这样避免了在不同的脚本指向不同的物体因遗忘导致的混乱。

一共有物种创立办法:

public class Test : MonoBehaviour
{
 //外面指向的一个物体
 public GameObject prefab;
 public GameObject prefabFather;
 void Start()
 {
 if (prefab==null||prefabFather==null)
 {
 throw new NoNullAllowedException("目标不可为空");
 }
 GameObject testOne = new GameObject();
 GameObject testTwo = new GameObject("修仙");
 //能够增加组件
 testOne.AddComponent<BoxCollider2D>();
 testTwo.AddComponent<MeshRenderer>();
 GameObject.Instantiate(prefab); //实例化目标
 GameObject.Instantiate(prefab, prefabFather.transform); //创立的时分指定父亲
 GameObject.Instantiate(prefab, prefabFather.transform, false); //分配父亲的时分是否保持原始的国际位置,false不保存,true保存
 GameObject.Instantiate(prefab, prefabFather.transform.position,
 Quaternion.identity); //Quaternion.identity -目标与国际轴或父轴完美对齐(无旋转)
 GameObject.Instantiate(prefab, prefabFather.transform.position, Quaternion.identity, prefabFather.transform); //创立目标的同时指定父亲
 }
}

体系CreatePrimitive

创立体系内置的基础物体,比方Cube(正方体),Plane(平面),Sphere(球体)。

GameObject.CreatePrimitive() 传递的是PrimitiveType里的枚举。

GameObject.CreatePrimitive(PrimitiveType.Cube); //创立个正方体
GameObject.CreatePrimitive(PrimitiveType.Sphere); //创立个球体
GameObject.CreatePrimitive(PrimitiveType.Capsule); //创立个胶囊
GameObject.CreatePrimitive(PrimitiveType.Cylinder); //创立个圆柱体
GameObject.CreatePrimitive(PrimitiveType.Plane); //创立个占用内存大的平面
GameObject.CreatePrimitive(PrimitiveType.Quad); //创立个占用内存小的平面

作者:小空和小芝中的小空

转载阐明-务必注明来源:芝麻粒儿 的个人主页 – 专栏 – ()

这位道友请留步☁️,我观你气度不凡,谈吐间隐约有王者霸气,日后定有一番大作为!!!周围有点赞保藏今天传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。