Unity-Transform类-父子关系

news/2024/9/18 10:23:01/ 标签: unity, java, 游戏引擎

Transform拓展方法练习

public static class Tuozhan
{


   拓展方法,把子对象按名字长度排序


    public static void Sortchild(this Transform obj)
    {
        List<Transform> Indexs = new List<Transform>();
        for (int i = 0; i < obj.childCount; i++)
        {
           Indexs.Add(obj.GetChild(i));
        }
        Indexs.Sort((a, b) => 
        {
           if(a.name.Length> b.name.Length)
                return 1;
           else 
                return -1;
        });

        for (int i = 0; i < Indexs.Count; i++)
        {
            Indexs[i].SetSiblingIndex(i);
        }

    }

拓展方法,根据名字找子对象,儿子的儿子也能找到的那种

    public static Transform FindDeepChild(this Transform obj, string name)
    {
        Transform target = null;

        if (obj.Find(name) != null)
        {
            target = obj.Find(name);
            return target;
        }

//如果找到了就返回

//找不到就让儿子找

        for (int i = 0; i < obj.childCount; i++)
        {
            if (obj.GetChild(i).FindDeepChild(name) != null)        //如果儿子找到了就返回
                return target = obj.GetChild(i).FindDeepChild(name);
        }

        return target;

    }
}

父子关系API

        获取和设置父对象transform.SetParent()


        //获取父对象
        //print(this.transform.parent.name);


        //设置父对象 断绝父子关系
        //this.transform.parent = null;


        //设置父对象 认爸爸
        //this.transform.parent = GameObject.Find("Father2").transform;

        //通过API来进行父子关系的设置
        //this.transform.SetParent(null);//断绝父子关系
        //this.transform.SetParent(GameObject.Find("Father2").transform);//认爸爸

        参数一:我的父亲
        参数二:是否保留世界坐标的 位置 角度 缩放 信息
               true  会保留 世界坐标下的状态  和 父对象 进行计算 得到本地坐标系的信息
               false 不会保留 会直接把世界坐标系下的 位置角度缩放 直接赋值到 本地坐标系下 

       this.transform.SetParent(GameObject.Find("Father3").transform, false);

抛妻弃子transform.DetachChildren();

就是和自己的所有儿子 断绝关系 没有父子关系了
        this.transform.DetachChildren();

获取子对象


        按名字查找儿子transform.Find能找失活对象


        //找到儿子的 transform信息
        //Find方法 是能够找到 失活的对象的 !!!!! GameObject相关的 查找 是不能找到失活对象的
        print(this.transform.Find("Cube (1)").name);
        //他只能找到自己的儿子 找不到自己的孙子 !!!!!!
        //print(this.transform.Find("GameObject").name);
        //虽然它的效率 比GameObject.Find相关 要高一些 但是 前提是你必须知道父亲是谁 才能找

        遍历儿子transform.childCount        

        transform.GetChild(0)


        //如何得到有多少个儿子
        //1.失活的儿子也会算数量
        //2.找不到孙子 所以孙子不会算数量
        print(this.transform.childCount);
        //通过索引号 去得到自己对应的儿子
        //如果编号 超出了儿子数量的范围 那会直接报错的 
        //返回值 是 transform 可以得到对应儿子的 位置相关信息
        this.transform.GetChild(0);

        for (int i = 0; i < this.transform.childCount; i++)
        {
            print("儿子的名字:" + this.transform.GetChild(i).name);
        }

儿子的操作


        判断自己的爸爸是谁transform.IsChildOf()


        //一个对象 判断自己是不是另一个对象的儿子
        if(son.IsChildOf(this.transform))
        {
            print("是我的儿子");
        }


        得到自己作为儿子的编号.GetSiblingIndex()


        print(son.GetSiblingIndex());


        把自己设置为第一个儿子

  son.SetAsFirstSibling();

最后一个儿子

    son.SetAsLastSibling();

指定个儿子

    son.SetSiblingIndex(1); 就算你填的数量 超出了范围(负数或者更大的数) 不会报错 会直接设置成最后一个编号
 


http://www.ppmy.cn/news/1526184.html

相关文章

9. 什么是 Beam Search?深入理解模型生成策略

是不是总感觉很熟悉&#xff1f; 在之前第5&#xff0c;7&#xff0c;8篇文章中&#xff0c;我们都曾经用到过与它相关的参数&#xff0c;而对于早就有着实操经验的同学们&#xff0c;想必见到的更多。这篇文章将从示例到数学原理和代码带你进行理解。 Beam Search 对应的中文翻…

《上海体育大学学报》

投稿要求 &#xff08;1&#xff09;稿件格式&#xff1a;请参考《上海体育大学学报》论文模板&#xff0c;可前往官网“论文模板”下载。 &#xff08;2&#xff09;开设栏目&#xff1a;《专题探索》《学术争鸣》《原创成果》《研究综述》《热点透视》《新视点》等。 &…

Google 工程师开始用Rust 语言开发 Android 固件

Google 工程师最近开始尝试用 Rust 语言为 Android 虚拟化框架&#xff0c;他们用Rust语言重写了保护虚拟机的固件。Google工程师 Ivan Lozano 和 Dominik Maier 在官方博客上鼓励其他开发者也用 Rust 开发固件&#xff0c;表示并不难。 众所周知&#xff0c;系统固件通常是用…

第二十四章 加密安全标头元素 - 基本示例

文章目录 第二十四章 加密安全标头元素 - 基本示例 第二十四章 加密安全标头元素 - 基本示例 以下示例调用 Web 客户端并发送已加密的 <UsernameToken>。在此示例中&#xff0c;正文未加密。 Set client##class(XMLEncrSecHeader.Client.XMLEncrSecHeaderSoap).%New()//…

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 苹果格式

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 Heic2any: Client-side conversion of HEIC/HEIF image files to JPEG,PNG, or GIF in the browser.https://alexcorvi.github.io/heic2any/#demo GitHub - alexcorvi/heic2any: Converting HEIF/HEIF image formats to PN…

【QT】常用控件-下

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;QT 目录 &#x1f449;&#x1f3fb;QComboBox&#x1f449;&#x1f3fb; QSpinBox&#x1f449;&#x1f3fb;QDateTimeEdit&#x1f449;&#x1f3fb;QD…

华为ensp:WLAN的无线综合实验

一、WLAN的知识点 1.WLAN的概念&#xff1a;WLAN是一种无线局域网技术&#xff0c;用于实现局部区域内的计算机设备互联和资源共享。 2.WLAN的工作原理&#xff1a;主要涉及无线网卡、接入控制器设备(AC)、无线接入点(AP)等关键组件的协同工作。 3.建立CAPWAP隧道阶段 4.为确…

优化安防视频监控的关键体验:视频质量诊断技术如何应用在监控系统中?

随着科技的不断进步&#xff0c;视频监控平台在公安、司法、教育、基础设施等众多领域得到了广泛应用。然而&#xff0c;视频图像的质量直接关系到监控系统的应用效果&#xff0c;是反映监控系统运维效果的重要指标之一。因此&#xff0c;视频监控平台需要配备一系列先进的视频…

计算机毕业设计选题推荐-项目评审系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

替换传统数据处理平台,TDengine 与华风数据达成合作

在全球能源转型的大背景下&#xff0c;新能源产业正迎来前所未有的发展机遇。随着国家对可再生能源的政策支持和市场需求的不断增长&#xff0c;风电、光伏和储能等新能源项目如雨后春笋般蓬勃发展。然而&#xff0c;随之而来的数据处理与管理挑战也日益凸显。面对海量的设备运…

返回当前栈内最小元素

设计一个栈&#xff0c;包含传统的push&#xff0c;pop&#xff0c;top方法。此外&#xff0c;再设计一个getMin函数&#xff0c;用于返回栈内最小的元素。 思想&#xff1a;存储普通的数据元素用eStack,存储最小值用栈minStack。当eStack存一个元素时&#xff0c;minStack记录…

react native(expo)选择图片/视频并上传阿里云oss

1.引入相关库&#xff1a; ant-design/react-native ant风格UI库 expo-file-system 文件访问 expo-image-picker 图片/视频选择器 2.新建图片选择并上传的帮助类 import { Toast } from ant-design/react-native; import * as FileSystem from "expo-file-system"…

Android系列基础知识总结

四大组件 Activity Activity生命周期 不同场景下Activity生命周期的变化过程 启动Activity&#xff1a; onCreate()—>onStart()—>onResume()&#xff0c;Activity进入运行状态。Activity退居后台&#xff1a; 当前Activity转到新的Activity界面或按Home键回到主屏&a…

前端-CDN的理解及CDN一些使用平台

目录 1.CDN的概念 &#xff08;1&#xff09; 分发服务系统 &#xff08;2&#xff09;均衡负荷系统 &#xff08;3&#xff09;运营管理系统 &#xff08;4&#xff09;缓存系统 &#xff08;5&#xff09;支撑系统 2.CDN的基本工作原理 3.CDN使用缓存资源过程 4.CDN…

前端Vue框架实现html页面输出pdf(html2canvas,jspdf)

代码demo&#xff1a; <template><el-dialog class"storageExportDialog" :fullscreen"true" title"" :visible.sync"visible" v-if"visible" width"600px"><div id"exportContainer" …

[极客大挑战 2019]Http

1、访问题目链接 2、查看页面源码发现一个Secret.php的跳转页面 3、访问Secret.php发现页面有提示&#xff0c;它说它不是来自这个网页 4、抓包修改来源 添加&#xff1a;Referer: https://Sycsecret.buuoj.cn 发送查看响应 5、修改User-Agent为&#xff1a;Syclover 6、添加X-…

【Qt系列样式表】探索Qt Widget的艺术化设计与应用(Macos风格)(持续更新中...)

✨✨ Rqtz 个人主页 : 点击✨✨ &#x1f308;Qt系列专栏:点击 &#x1f388;PyQt系列专栏:点击&#x1f388; &#x1f388;Qt智能车上位机专栏: 点击&#x1f388; &#x1f388;Qt串口助手专栏:点击&#x1f388; &#x1f4ab;宗旨:共享IT之美,共创机器未来 目录 界面…

编译QT源码时的configure参数须知

文章目录 一、configure help原文二、configure help机译三、features 执行命令得到configure帮助文件 qtsrc/configure --help一、configure help原文 Usage: configure [options] [-- cmake-options]This is a convenience script for configuring Qt with CMake. Options…

iPhone 16 发布 “从零开始为人工智能设计”的iPhone

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

数论-快速幂

快速幂 模板代码推导过程 求 A^B mod C&#xff0c;时间复杂度 O(logB) 模板代码 using ll long long; // 可以在头文件中添加这行ll qmi(ll a, ll b, ll c) {ll ans 1; // 初始化结果为 1a % c; // 将 a 取模 c&#xff0c;确保 a 小于 cwhile (b) …