Unity中实例化游戏物体和销毁游戏物体

Unity中实例化游戏物体和销毁游戏物体Unity 中实例化物体是很常见的 例如坦克大战中你用子弹打中一个坦克之后 分数加 1 然后场景中又会生成新的坦克 这个过程中就存在一次游戏物体销毁 子弹打中坦克后 坦克销毁 和一次游戏物体实例化 场景中又生成新的坦克 这算 Unity 中实例化游戏物体和销毁游戏物体的一个实际应用场景吧 首先附上实例化游戏物体的思维导图下面来看具体的操作吧 1 在 Unity 中新建一个场景 创建一个 Prefab 物体 这里

Unity中实例化物体是很常见的,例如坦克大战中你用子弹打中一个坦克之后,分数加1然后场景中又会生成新的坦克。这个过程中就存在一次游戏物体销毁(子弹打中坦克后,坦克销毁)和一次游戏物体实例化(场景中又生成新的坦克),这算Unity中实例化游戏物体和销毁游戏物体的一个实际应用场景吧。

首先附上实例化游戏物体的思维导图

Unity中实例化游戏物体和销毁游戏物体

下面来看具体的操作吧。

1. 在Unity中新建一个场景,创建一个Prefab物体,这里建了名为Box的预制体

Unity中实例化游戏物体和销毁游戏物体

2. 创建一个空的游戏物体用来实例化生成Box

操作如下:Hierarchy—>Creat Empty—>重命名为CreatBox—>新建一个脚本名称为CreatBox拖拽到CreatBox游戏物体上

这一步比较简单就不截图了。

3. 打开CreatBox脚本,写控制游戏物体生成的逻辑代码

关键代码如下:

GameObject.Instantiate(Object,Vector3,Quaternion)

Intantiate方法是静态方法,要用类名GameObject . 调用。

方法中有三个参数,也很好理解。大家想一想我们要在场景中生成一个游戏物体

第一个参数 Object 是要生成的游戏物体

生成的游戏物体在场景中要有一个位置吧,第二个参数Vector3就是游戏物体的生成位置

第三个参数Quaternion是表示生成的游戏物体是否旋转,一般是不旋转我们用Quaternion.identity表示无旋转

代码截图如下:

Unity中实例化游戏物体和销毁游戏物体

代码中比较关键的一句:

public GameOject  m_prefab;

因为我们定义的是public类型变量,所以在Inspector面板中我们可以看到一个GameObject类型的变量,点击右侧的小圆点就可以找到我们的Box预制体,然后选中它。

既然要在场景中生成游戏物体,这句话的意思就是要获得要生成游戏物体Box的引用

Unity中实例化游戏物体和销毁游戏物体

void Start ( )函数中语句解释:

 GameObject.Instantiate(m_prefab, Vector3.up,Quaternion.identity);

Vector3.up:代表场景中原点上一米的位置

Quaternion.identity:表示生成的物体无旋转

4. 生成游戏物体的效果截图

Unity中实例化游戏物体和销毁游戏物体

——-我是美丽的分割线———————————————————————————————————

下面来引申一下,Vector3.up表示在场景中原点上方一米的位置生成一个Box, 假如我们要在任意指定的一个位置生成一个Box呢,再或者在任何一个随机位置生成一个Box呢,下面就看操作吧。

  • 指定位置生成一个Box

这种情况我们只需要给Vector3类型参数指定一个新的位置参数就可以了

GameObject.Instantiate(m_prefab, new Vector3(1,2,3),Quaternion.identity);

Unity中实例化游戏物体和销毁游戏物体

  • 随机位置生成一个Box

随机位置用Random.Rang(min,max)函数成成随机的x,y,z值就可以了

首先获得min和max的值:在场景中新建一个cube,拖拽cube测量场景长宽的min和max

可以看到x轴左边,x值为4.5

x轴右边,x值为-4.5

所以min为-4.5,max为4.5

同理可以得到z轴的最大值和最小值

Unity中实例化游戏物体和销毁游戏物体

Unity中实例化游戏物体和销毁游戏物体

代码如下:

在两米高的地方,x轴z轴上随机生成游戏物体

Unity中实例化游戏物体和销毁游戏物体

——-我是美丽的分割线———————————————————————————————————

第二部分销毁游戏物体

创建一个脚本DestoryBox—>添加到预制体Box上

脚本添加到Box上方法:点中预制体Box—>Inspector面板中,下方Add Component,搜索找到CreatBox脚本组件

Unity中实例化游戏物体和销毁游戏物体

脚本中代码:

Unity中实例化游戏物体和销毁游戏物体

代码解释:

GameObject.Destroy(gameObject,2.0f);

Destory是静态方法,用类名加点的形式调用

方法中有两个参数

gameObject表示要销毁的游戏对象自身

2.0f表示2秒后销毁,可以任意指定时间

也可以用随机数函数生成随机的销毁时间,例如:Random.Range(1.0f,5.0f),表示1到5秒之间的秒数销毁游戏对象。


——-我是美丽的分割线———————————————————————————————————

到这里本次分享就结束了,纯小白操作,一点点的码字确实很辛苦,如果这次分享对看到这一贴的你有帮助,那就点个赞吧,这样也能激励我继续学习下去,分享下去!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218108.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午8:01
下一篇 2026年3月18日 上午8:01


相关推荐

  • python中callback_python安装后怎么打开

    python中callback_python安装后怎么打开刚接触Python的时候,简单的异常处理已经可以帮助我们解决大多数问题,但是随着逐渐地深入,我们会发现有很多情况下简单的异常处理已经无法解决问题了,如下代码,单纯的打印异常所能提供的信息会非常有限。deffunc1():raiseException(“–func1exception–“)defmain():try:func1()exceptExceptionase:printe…

    2025年5月28日
    5
  • VScode常用插件_AE必备插件

    VScode常用插件_AE必备插件这篇博客主要是我使用vscode过程中的插件汇总,使用了这么长时间,总想有个总结,也方便日后查看,这里我将我使用的插件分为基础、框架、工具三个类型。官网地址VSCode插件官网地址,里面有很多的插件可以使用。基础插件这部分插件主要是和html、css、js有关的。htmlCSSSupport这个插件支持以下语言,提供基础的语法知识编写辅助。这是插件地址htmllarav…

    2026年4月19日
    7
  • 计算机科学和电子信息学报,太赫兹科学与电子信息学报

    计算机科学和电子信息学报,太赫兹科学与电子信息学报太赫兹科学与电子信息学报 双月刊 创刊于 2003 年 是由中国工程物理研究院主管 中国工程物理研究院电子工程研究所主办 四川省电子学会协办的国内外公开发行的学术期刊 经国家新闻出版总署批准 信息与电子工程 于 2013 年 1 月起更名为 太赫兹科学与电子信息学报 国内外公开发行 主管单位为中国工程物理研究院 主办单位为中国工程物理研究院电子工程研究所 协办单位为中国兵工学会太赫兹应用技术专业委员会

    2026年3月19日
    3
  • C语言 stat 函数「建议收藏」

    C语言 stat 函数「建议收藏」C语言stat函数stat头文件:#include<sys/stat.h>#include<unistd.h>函数原型:intstat(constchar*file_name,structstat*buf)**函数说明:**stat函数获取file_name指向文件的文件状态,并将文件信息保存到结构体buf中,执行成功返回0,失…

    2022年8月21日
    22
  • oracle中锁表语句,oracle查询锁表解锁语句

    oracle中锁表语句,oracle查询锁表解锁语句一.查询锁定的表如下语句,都可以查询锁定的表语句一:selecta.sid,a.serial#,p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_namefromv$processp,v$sessiona,v$locked_objectb,all_objectscwherep.addr=a.paddr…

    2022年8月23日
    8
  • openssl生成证书linux,Linux下使用openssl生成证书「建议收藏」

    openssl生成证书linux,Linux下使用openssl生成证书「建议收藏」利用OpenSSL生成库和命令程序,在生成的命令程序中包括对加/解密算法的测试,openssl程序,ca程序.利用openssl,ca可生成用于C/S模式的证书文件以及CA文件.证书文件的生成步骤:一、服务器端1.生成服务器端的私钥(key文件);opensslgenrsa-des3-outserver.key1024运行时会提示输入密码,此密码用于加密key文件(参数des3是加密算法…

    2026年1月22日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号