Unity --- Transform类

1.一个很有意思的事实是Transform类不仅用来管理游戏物体的位置缩放旋转,还用来管理游戏物体的父物体与子物体之间的关系

当游戏物体A的trasnform类a是游戏物体B的transform类b的父类的话,游戏物体A就是游戏物体B的父物体

2.如何访问脚本当前挂载的游戏物体的transform类呢 --- 在脚本中可以直接通过transform这个类名访问

position属性记录的是当前游戏物体在世界坐标系中的的坐标 

游戏物体的transform类中的 localposition 这个属性:

1.在当前游戏物体没有父物体的时候,其值与position中的相对于世界坐标系下的坐标相同

2.当当前游戏物体有父物体的时候,其值是当前游戏物体相对于其父物体的本地坐标系的坐标

获取旋转也同理,一个是相对于世界坐标系的旋转,一个是相对于父物体的本地坐标系的旋转(如果有的话) 

ps:调用上面这两个属性得到的旋转是以四元数形式(四个参数)来表示的(当然要用四元数对象来接收)

也有获取以欧拉角形式表示的旋转(三个参数)

 也有相对于世界坐标系和相对于父物体的本地坐标系的两个对应属性

缩放只有一个相对于父物体的本地坐标系的缩放(如果没有父物体的话就是相对于世界坐标系的缩放) 

3.在Unity中一个物体都有x,y,z三个轴显示,我们一般默认Z轴是游戏物体的前方轴(forward),y轴是游戏物体的上方轴(up),红色的轴是游戏物体的右方轴(right)

 

 forward属性是一个向量,这个向量是以1.游戏物体的本地坐标系的Z轴的方向来作为自己的方向2.处于世界坐标系中的单位向量

up和right同理


4.transoform类中常用的一些方法

1.让游戏物体看向某一个坐标点 --- 注意这个方法调用一次之后能够让游戏物体看向一个坐标点,如果游戏物体转向了话,就需要我们再一次调用这个方法

如果我们想让游戏物体时时刻刻看向某个坐标点的话,就需要我们把这个方法放到Updata中,每一帧调用一次,这样子就能在刷新的画面中保证我们的游戏物体时时刻刻都是看向我们给定的坐标点的

注意这里的看向某个点是指游戏物体的本地坐标系的Z轴会指向这个点

让一个游戏物体旋转的时候我们需要给它指定一个旋转的轴 ,这个轴以向量形式表示,

且这个向量是在游戏物体的本地坐标系中求出的,该向量的起点是这个本地坐标系的原点

这个方法的功能是让我们的游戏物体绕某个点的本地坐标系中的某个向量旋转

总共有三个参数 --- 1.我们要绕的点的坐标 ; 2.过我们要绕的点的一个旋转轴,这个旋转轴是在我们要绕的点的本地坐标系中的一个向量(这个向量的起点坐标就是我们要绕的点,而我们要绕的点就是本地坐标系中的原点); 3.绕旋转旋转的角度

首先给定一个Vector3参数,这个参数起到两个作用,一个是作为游戏物体本地坐标系中的一个向量来决定游戏物体的移动方向,另一个则是作为调用一次该方法后,沿着给定方向游戏物体的移动距离


transform类管理游戏物体的父子关系

 1.获取当前游戏物体的父物体

注意下面这个索引的最终属性是gameObject,其类型是GameObject,也就是说我们找到的是一个游戏物体对象!!

--- 首先通过transform对象调用parent属性,返回一个Transform类对象,这个对象是指向第一个transform对象对应的游戏物体的父物体的tranform的,然后再对 这个transform对象索引调用gameObject属性,返回一个游戏物体对象,这个游戏物体对象指向的是父物体

2.childCount --- 获取当前游戏物体的子物体的个数

 

 在Unity中一个父物体可以有多个子物体,但是一个子物体只能有一个父物体(类的继承)

子物体也能创建自己的子物体来成为父物体

 

 调用这个放啊后会使得游戏物体与其所有子物体接触父子关系

通过transform获取子物体的tranform

 第一个是传我们要获取的子物体的transform,如果想要获取子物体游戏对象的话还需要再

trans后面加一个 . gameObject

第二个方法则是通过索引获取对应索引的子物体的transform --- 索引从0开始 

 父物体的transform变量名(再脚本中写代码的时候,脚本所挂载的游戏对象的transform变量可直接用transform表示)+ 点操作符 + GetChill(获取父物体的子物体的transform变量)

上面的子物体的索引由上到下是0,1,2

(PS:一个父物体A下有一个子物体B,这个子物体下又有一个其自身的子物体C,问C是不是A的子物体? -- 答: 不是

上面两个find和getchild都只能找属于点操作符前面的父物体的子物体,找不到就返回Null

是的话返回ture,不是返回false 

这个方法可以将括号内的transform对象对应的游戏物体设置为点操作符前面的transform对象对应的游戏物体的父物体 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/4192.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity IL2CPP 游戏分析入门

一、目标 很多时候App加密本身并不难,难得是他用了一套新玩意,天生自带加密光环。例如PC时代的VB,直接ida的话,汇编代码能把你看懵。 但是要是搞明白了他的玩法,VB Decompiler一上,那妥妥的就是源码。 U…

GPT-4创造者:第二次改变AI浪潮的方向

OneFlow编译 翻译|贾川、杨婷、徐佳渝 编辑|王金许 一朝成名天下知。ChatGPT/GPT-4相关的新闻接二连三刷屏朋友圈,如今,这些模型背后的公司OpenAI的知名度不亚于任何科技巨头。 不过,就在ChatGPT问世前,Ope…

昇腾AI机器人发布,12家企业、5家高校签约,昇腾AI开发者创享日全国巡展沈阳首站成功举办

“创未来,享非凡”昇腾AI开发者创享日2023年全国巡回首站活动成功举办,本次活动由辽宁省科技厅指导,由沈阳市科技局、浑南区人民政府、沈阳高新区管理委员会、华为技术有限公司共同主办,沈阳昇腾人工智能生态创新中心承办&#xf…

使用R语言包clusterProfiler做KEGG富集分析时出现的错误及解决方法

使用enrichKEGG做通路富集分析时&#xff0c;一直报错&#xff1a;显示No gene can be mapped....k <- enrichKEGG(gene gene, organism "hsa", pvalueCutoff 1, qvalueCutoff 1)但是之前用同样的基因做分析是能够成功地富集到通路&#xff0c;即便是网上的数据…

Postman下载与安装操作步骤【超详细】

&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是超梦梦梦梦&#xff0c;很高兴认识大家~&#x1f357;关注➕点赞➕评论➕收藏 &#x1f604;&#x1f64f;博主水平有限&#xff0c;如有错误&#xff0c;欢迎各位大佬纠正 Postman下载与安装&#x1…

STM32单片机通过ESP8266WiFi模块与Android APP实现数据传输(二)---上位机搭建

事物的难度远远低于对事物的恐惧 完成对STM32单片机和ESP8266 WiFi模块的配置之后&#xff0c;接下来需要完成Android APP代码的编写以及实现。 1.添加网络权限 因为我们需要对WiFi进行操作&#xff0c;所以需要网络的权限&#xff0c;在AndroiManifest.xml文件中加入以下代码…

Liunx创建用户与授权大招以及Linux修改SSH端口

1、Liunx创建用户与授权 背景&#xff1a;大家个人建站学习的时候&#xff0c;经常会涉及到创建Linux用户&#xff0c;授权用户&#xff0c;网上一堆操作各种不好使&#xff0c;小编总结了一个最好用的写法供大家使用。 还有个人云服务遭受挖矿攻击的情况&#xff0c;建议大家也…

mac maven安装和配置本地仓库

首先我们需要下载&#xff1a;maven官网下载地址传送门 x.x.x-bin.zip(Windows系统的) 找到x.x.x-bin.tar.zip(mac系统的) 备注&#xff1a;下面的图截错了&#xff0c;抱歉 下载完成之后&#xff0c;可以在右下角的下载找到 然后双击这个 .zip 压缩包 &#xff0c;可以进行…

解决使用WinScp连接Ubantu系统失败的问题---SSH无法连接

起因 为了互通Linux系统和Windows系统的文件&#xff0c;以更好的实现文件管理和资源共享。 所以在查阅资料后&#xff0c;使用WinScp&#xff0c;WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。它的主要功能就是在本地与远程计算机间安全的复制文件。winscp也可…

Python的23种设计模式(完整版带源码实例)

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; Python的23种设计模式 一 什么是设计模式 设计模式是面对各种问题进行提炼和抽象而形成的解决方案。这些设计方案是前人不断试验&…

猿创征文 | re:Invent 朝圣之路:“云“行业风向标

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; AWS 亚马逊云科技re:Invent全球大会 2022年亚马逊云科技re:Invent全球大会震撼来袭&#xff0c;即将于北京时间11月30日-12月2日在美国内华达州&#xff0c;拉斯维加斯…

【七】一文带你迅速掌握设计模式中的单例模式

1. 什么是设计模式 设计模式可以理解为就是一种固定套路&#xff0c;就好比你和对手下棋得时候&#xff0c;会有一些固定套路下法&#xff1b;而设计模式就是软件开发的棋谱~ 设计模式有很多种&#xff0c;接下来就介绍一种校招阶段&#xff0c;主要考察的两种设计模式: 单例…

centos 7安装mysql

今天在centos 7上安装mysql数据库&#xff0c;遇到了些问题以及解决方法&#xff0c;记录一下。1、下载mysql安装包wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm出现跟上面界面这样子&#xff0c;说明是ok的了&#xff0c;接下来&#xf…

LAMP架构之zabbix监控(2):zabbix基础操作

目录 一、zabbix监控节点添加和删除 &#xff08;1&#xff09;手动添加 &#xff08;2&#xff09;自动添加 &#xff08;3&#xff09;按照条件批量添加 &#xff08;4&#xff09;使用api工具进行管理 二、针对应用的zabbix监控 一、zabbix监控节点添加和删除 实验说明&a…

yolov5 优化系列(三):修改损失函数

1.使用 Focal loss 在util/loss.py中&#xff0c;computeloss类用于计算损失函数 # Focal lossg h[fl_gamma] # focal loss gammaif g > 0:BCEcls, BCEobj FocalLoss(BCEcls, g), FocalLoss(BCEobj, g)其中这一段就是开启Focal loss的关键&#xff01;&#xff01;&…

基于opencv的边缘检测方法

1、梯度运算 用OpenCV的形态变换&#xff08; 膨胀、腐蚀、开运算和闭运算&#xff09;函数morphologyEx 梯度运算即膨胀结果-腐蚀结果&#xff1a; 【注意】对于二值图像来说&#xff0c;必须是前景图像为白色&#xff0c;背景为黑色&#xff0c;否则需要进行反二值化处理 …

axios介绍和使用

简介 本文主要讲解axios的概念和基本使用。 axios时目前最流行的ajax封装库之一&#xff0c;用于很方便地实现ajax请求的发送。 支持的功能&#xff1a; 从浏览器发出 XMLHttpRequests请求。从 node.js 发出 http 请求。支持 Promise API。能拦截请求和响应。能转换请求和响…

中文文献怎么查找,带你了解中文文献查找途径及方法

在我们撰写论文和科研工作时经常会查找文献资料&#xff0c;今天带大家了解中文文献查找途径及方法。 查找中文文献常用网站有&#xff1a; 文献党下载器&#xff08;wxdown.org&#xff09;:是一个几乎整合了所有中外文献数据库资源的文献下载平台&#xff0c;因为资源最多&a…

手机(Android)刷NetHunter安装指南,无需ssh执行kali命令, NetHunter支持的无线网卡列表!

一、安装NetHunter 前提&#xff1a;确保手机已经root&#xff0c;已装上magisk。如果没有root&#xff0c;可用尝试magisk root 后执行此文 1、下载Nethunter&#xff1a;Get Kali | Kali Linux 然后push 到sdcard 里&#xff0c; 2、打开magisk&#xff0c;选择刚刚下好的…

【Python学习笔记】b站@同济子豪兄 用pytorch搭建全连接神经网络,对Fashion-MNIST数据集中的时尚物品进行分类

【Python学习笔记】原作b站同济子豪兄 用pytorch搭建全连接神经网络&#xff0c;对Fashion-MNIST数据集中的时尚物品进行分类 跟着b站同济子豪兄的视频自学写的代码&#xff0c;内容是用pytorch搭建全连接神经网络&#xff0c;对Fashion-MNIST数据集中的时尚物品进行分类 视频…