当前位置: 首页 > wzjs >正文

交互做的比较好的网站google关键词工具

交互做的比较好的网站,google关键词工具,M97 网站建设网络公司整站源码,中国工程网查询目录 本文末尾有全部总结,如有需要可直接跳转 一、几个重要成员 二、重要方法 1. 从脚本获取其他的组件,例如RigidBory等 2. 获取多个组件 3.子对象组件获取 3.1 单组件获取(深度搜索) 3.2 多组件获取(全子树&…

        

目录

        

        本文末尾有全部总结,如有需要可直接跳转

一、几个重要成员

二、重要方法

1. 从脚本获取其他的组件,例如RigidBory等

2. 获取多个组件

 3.子对象组件获取

3.1 单组件获取(深度搜索)

 3.2 多组件获取(全子树)

 4.父对象组件获取

4.1单组件获取(层级搜索)

 4.2 多组件获取(全父链)

三、参数详解对照表

四、总结

关键属性总表

组件获取方式详解 

单组件获取方法

多组件获取方法:

五、注意事项 


        本文末尾有全部总结,如有需要可直接跳转

一、几个重要成员

这个就是gameObject

(1)本(Object)对象的名字 this.gameObject.name

(2)本(Object)对象的身上的transform组件。快捷访问,this.gameObject.transform

(3)使得某个脚本是否激活,注意是脚本。控制脚本的激活状态(true=启用,false=禁用)

禁用时:Update()、FixedUpdate()等生命周期方法将停止执行

启用时:会触发OnEnable(),禁用时触发OnDisable()

(4)tag:访问或设置GameObject的标签

(5)layer:访问或设置GameObject所在的层级(0-31)

(6)isActiveAndEnabled复合状态检查(GameObject激活且脚本启用)

属性检查内容典型应用场景
gameObject.activeSelf仅检查当前对象自身的激活状态(与父对象无关)判断对象是否被自身设置为非激活状态
gameObject.activeInHierarchy检查对象在场景中的实际激活状态​(受父对象层级影响)判断对象是否真实参与场景交互
enabled仅检查脚本组件是否启用控制脚本逻辑是否执行
isActiveAndEnabled同时满足:activeInHierarchy == true ​​ enabled == true判断脚本是否真正处于工作状态
状态变化影响结果
父对象被禁用→ activeInHierarchy变为false → isActiveAndEnabled变为false
脚本被禁用 (enabled = false)→ isActiveAndEnabled立即变为false,即使对象处于激活状态
对象自身被禁用 (SetActive(false))→ activeSelf变为false → 同时导致activeInHierarchyisActiveAndEnabled变为false

 

二、重要方法

1. 从脚本获取其他的组件,例如RigidBory等

方法签名参数说明返回值时间复杂度使用建议
T GetComponent<T>()无参数单个TO(1)优先使用的标准方式
Component GetComponent(string type)type: 类型名称字符串ComponentO(n)避免使用,存在性能损耗
Component GetComponent(Type type)type: System.Type类型对象ComponentO(n)非泛型方案,需类型转换
bool TryGetComponent<T>(out T component)component: 输出参数boolO(1)安全获取的首选方式

上面表格中的23一般不推荐使用,主要是麻烦。你还要自己检测类型正确与否。 

使用演示:

// 标准获取
Rigidbody rb = GetComponent<Rigidbody>();// 安全获取
if (TryGetComponent<Collider>(out Collider col)) {col.enabled = false;
}// 类型转换示例
Component c = GetComponent(typeof(Animator));
Animator anim = c as Animator;

2. 获取多个组件

方法签名参数说明返回值内存分配
T[] GetComponents<T>()无参数T数组
int GetComponents<T>(List<T> results)results: 结果存储列表找到的数量
void GetComponents(Type type, List<Component> results)type: 组件类型
results: 结果列表
void

使用实例:

// 使用预分配列表减少GC
List<Collider> colliders = new List<Collider>(5);
GetComponents(colliders);// 清空复用列表
colliders.Clear();
GetComponents(colliders);

 3.子对象组件获取

3.1 单组件获取(深度搜索)
方法签名参数说明默认值搜索范围
T GetComponentInChildren<T>(bool includeInactive = false)includeInactive: 包含非激活对象false自身+所有子对象
T GetComponentInChildren<T>()无参数includeInactive=false同上
// 查找第一个激活的渲染器
Renderer rend = GetComponentInChildren<Renderer>();// 包含非激活对象
Collider col = GetComponentInChildren<Collider>(true);
 3.2 多组件获取(全子树)
方法签名参数说明默认值结果顺序
T[] GetComponentsInChildren<T>(bool includeInactive = false)includeInactive: 包含非激活对象false深度优先顺序
void GetComponentsInChildren<T>(bool includeInactive, List<T> results)includeInactive: 同上
results: 结果列表
-同上
T[] GetComponentsInChildren<T>()无参数includeInactive=false同上
// 使用列表避免数组分配
List<Transform> children = new List<Transform>(10);
GetComponentsInChildren(true, children);

 4.父对象组件获取

4.1单组件获取(层级搜索)
方法签名参数说明默认值搜索方向
T GetComponentInParent<T>(bool includeInactive = false)includeInactive: 包含非激活父对象false自身 → 父级 → 祖父级
T GetComponentInParent<T>()无参数includeInactive=false同上
// 获取最近的UI Canvas
Canvas canvas = GetComponentInParent<Canvas>();// 包含未激活的父对象
Rigidbody rb = GetComponentInParent<Rigidbody>(true);
 4.2 多组件获取(全父链)
方法签名参数说明默认值结果顺序
T[] GetComponentsInParent<T>(bool includeInactive = false)includeInactive: 包含非激活父对象false自身 → 父级 → 祖父级
void GetComponentsInParent<T>(bool includeInactive, List<T> results)includeInactive: 同上
results: 结果列表
-同上
// 示例结构:GrandParent ← Parent ← Self
// 返回数组顺序:[SelfComponent, ParentComponent, GrandParentComponent]
RectTransform[] parents = GetComponentsInParent<RectTransform>();

小结:就是获取一堆组件的这种,都会优先检查自己身上有没有组件,都会将自身的组件算进去的 

方法类型包含自身搜索方向默认激活要求
GetComponentsInChildren向下深度优先
GetComponentsInParent向上层级链
GetComponentInChildren向下深度优先
GetComponentInParent向上层级链

三、参数详解对照表

参数名称适用方法默认值作用说明
includeInactiveGetComponentInChildren
GetComponentInParent
falsetrue时包含非激活对象:
- 对子对象:搜索被SetActive(false)的对象
- 对父对象:允许父级链中存在被禁用的对象
resultsGetComponents系方法-预分配的List容器,用于接收结果,避免内存分配
type非泛型方法-指定组件类型:
- 字符串版本效率较低
- Type对象需使用typeof运算符获取

四、总结

关键属性总表

属性类型作用描述重要说明
gameObjectGameObject当前脚本依附的游戏对象所有MonoBehaviour的根基
transformTransform快捷访问gameObject.transform等效于gameObject.transform
enabledbool控制脚本的启用状态(true=执行Update等生命周期方法)仅影响脚本本身,不影响其他组件
tagstring获取/设置游戏对象的标签建议使用CompareTag方法进行标签比较
layerint获取/设置游戏对象的层级(0-31)可通过LayerMask.NameToLayer转换层名称
isActiveAndEnabledbool复合状态检测(gameObject.activeInHierarchy && enabled)判断脚本是否真正起效的关键属性
useGUILayoutbool是否参与旧版GUI布局计算(默认true)现代UI系统(UGUI)不受此属性影响
gameObject.activeSelfbool对象自身的激活状态(不受父对象影响)仅反映SetActive的直接设置
gameObject.activeInHierarchybool对象在场景中的实际激活状态(受父对象层级影响)决定对象是否实际参与渲染、物理计算等

组件获取方式详解 

单组件获取方法

方法签名参数说明包含自身搜索范围推荐指数
T GetComponent()无参数仅自身★★★★★
bool TryGetComponent(out T component)component: 输出参数仅自身★★★★★
T GetComponentInChildren(bool includeInactive = false)includeInactive: 是否包含非激活子对象自身+所有子对象(深度优先)★★★★☆
T GetComponentInParent(bool includeInactive = false)includeInactive: 是否包含非激活父对象自身→父级→祖父级★★★★☆

多组件获取方法:

方法签名参数说明包含自身搜索范围内存分配
T[] GetComponents()无参数仅自身
void GetComponents(List results)results: 结果存储列表仅自身
T[] GetComponentsInChildren(bool includeInactive = false)includeInactive: 是否包含非激活子对象自身+所有子对象(深度优先)
void GetComponentsInChildren(bool includeInactive, List results)includeInactive: 同上
results: 结果列表
同上
T[] GetComponentsInParent(bool includeInactive = false)includeInactive: 是否包含非激活父对象自身→父级→祖父级
void GetComponentsInParent(bool includeInactive, List results)includeInactive: 同上
results: 结果列表
同上

五、注意事项 

  1. 组件缓存​:Start/Awake 预存常用组件
  2. 高频优化​:Update 中禁用 GetComponent
  3. 空值防护​:必用 TryGetComponent
  4. 标签规范​:CompareTag 代替字符串
  5. 状态隔离​:物理组件单独管理
  6. 预制延迟​:实例化后延迟初始化
  7. 循环禁忌​:禁止组件相互引用

文章转载自:

http://c6LPPUZf.xtrqh.cn
http://avTCQSpG.xtrqh.cn
http://evgekSgj.xtrqh.cn
http://Q69i9JmJ.xtrqh.cn
http://tB8SyzYI.xtrqh.cn
http://WByTNzoU.xtrqh.cn
http://VhpN4vba.xtrqh.cn
http://OHbBf5n3.xtrqh.cn
http://N4UXlnMl.xtrqh.cn
http://HNR5QfXZ.xtrqh.cn
http://xxBam1Yk.xtrqh.cn
http://n8UYkIQs.xtrqh.cn
http://jGisYjiQ.xtrqh.cn
http://X4nnpaEo.xtrqh.cn
http://10iDsphE.xtrqh.cn
http://p1c1RV5J.xtrqh.cn
http://29jNrL3r.xtrqh.cn
http://mlCgG7tf.xtrqh.cn
http://LTBIQbjd.xtrqh.cn
http://YeeExWJ4.xtrqh.cn
http://KoZgJWaL.xtrqh.cn
http://FMY96Tuz.xtrqh.cn
http://hggd4wqB.xtrqh.cn
http://qsO6qOA1.xtrqh.cn
http://Npy7f3pT.xtrqh.cn
http://pofaCYLS.xtrqh.cn
http://QRBI9dtw.xtrqh.cn
http://jAXzslsz.xtrqh.cn
http://zFW9e1XM.xtrqh.cn
http://FLuZPsHp.xtrqh.cn
http://www.dtcms.com/wzjs/765261.html

相关文章:

  • 企业网站建设比较调查怎么写wordpress ftp免密码破解
  • .net做网站c#做网站和做app
  • 做淘宝券推广的网站有哪些专门做网页设计网站
  • 西安公司网站制作要多少钱怎么样在公司配置服务器做网站
  • 徐州品牌网站建设浏览器怎么连接网站的
  • 中国建设银行官方网站手机银行外包服务有哪些
  • 门户网站程序培训机构不退钱最怕什么举报
  • 建筑工程网格化管理的目的和意义百度竞价优化软件
  • 品牌型网站案例需要做网站的公司有哪些
  • 做网站后台怎么弄wordpress钩子介绍
  • 中山网页建站模板开封府景点网站及移动端建设情况
  • 国外企业招聘网站开发软件需要多少成本
  • 河南郑州网站建设哪家公司好网站维护主要从哪几个方面做
  • 网站建设找a金手指下载全网搜
  • 广州科技公司有哪些网络营销策略优化
  • 网站开发 chrome gimp北京搜索优化推广公司
  • 常州网站制作优化个人工商注册查询网站
  • 信阳网站建设信阳八里河网站建设项目建设可行性
  • 做彩票网站抓到判几年网站开发的费用是怎么计算的
  • 阳江今天刚刚发生的重大新闻手机优化助手
  • 专业建设家电维修网站公司关键词代发排名推广
  • html5手机网站返回顶部宝塔wordpress教程
  • 企业所得税最新优惠政策诸城网站优化
  • 松江信息科技有限公司网站小程序开发公司十大排名
  • 房地产微网站建设栏目设计请输入搜索关键词
  • 金山专业网站建设wordpress兑换卡密
  • 网站推广方案总结wordpress 页面 列表
  • 买域名的钱最后给了谁怎样才可以知道网站是否优化
  • 如何做彩票网站推广图有没有做网站源代码修改的
  • 网站查询工具wordpress左右滑动