【Unity3D游戏开发】GameObject.Find()、Transform.Find查找隐藏对象 (十)

2024-03-24 19:38

本文主要是介绍【Unity3D游戏开发】GameObject.Find()、Transform.Find查找隐藏对象 (十),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • GameObjectFindTransformFind查找游戏对象
    • 前置条件
    • 相关API
      • 1 GameObjectFind
      • 2 TransformFind
      • 3 其他查找
    • 实际测试
    • 即使隐藏root节点gameObject也能进行查找的方法

GameObject.Find()、Transform.Find查找游戏对象

1.前置条件

Unity中常用到查找对象,非隐藏的、隐藏的,各种方法性能有高有低,使用又有各种条件限制。

在此对查找的性能和条件进行分析。开发时遇到的主要问题是查找隐藏对象。

没有完美的查找方法,只有最合适的查找方法

最后附带上测试代码

2.相关API

GameObject.Find
Transform.Find
GameObject.FindWithTag
GameObject.FindGameObjectsWithTag
Resources.FindObjectsOfTypeAll

2.1 GameObject.Find

通过名字或路径查找游戏对象。

GameObject.Find("GameObject");
GameObject.Find("GameObject/ChildGameObject);

使用规范:
1.无法查找隐藏对象
隐藏对象包括查找路径的任何一个父节点隐藏(active=false)

2.如果查找不在最上层,建议合理使用路径查找,路径查找是把双刃剑

优点1:解决查找中可能出现的重名问题。
优点2:如果有完全的路径,减少查找范围,减少查找时间。

缺点: 路径或结构调整后,容易影响到程序中的查找,需要重新定位查找路径。

3.如果路径查找中的任何一个父节点active=false,这个对象都将查找不到。

4.使用方便但效率低下
此查找相当于递归遍历查找,虽使用方便但效率堪忧,建议在Start()函数中查找对象并保存引用,切忌在Update()中动态查找。

2.2 Transform.Find

1.可以查找隐藏对象
2.支持路径查找
3.查找隐藏对象的前提是transform所在的根节点必须可见,即active=true

GameObject root = GameObject.Find("root");
root

这篇关于【Unity3D游戏开发】GameObject.Find()、Transform.Find查找隐藏对象 (十)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/842587

相关文章

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经