UnityAPI学习之Transform组件基本使用

目录

Transform组件

访问与获取

Transform的位置和旋转信息

Transform局部坐标和旋转信息的获取

Transform的缩放与正方向

缩放(Scale)

正方向

Transform相关的查找方法

销毁游戏物体


Transform组件

访问与获取

现在创建一个容器放置GrisGO物体的、Transform组件并输出其名字

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);}// Update is called once per framevoid Update(){}
}

Transform的位置和旋转信息

示例1:获取GrisGO的位置信息和旋转信息

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*/Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);}// Update is called once per framevoid Update(){}
}

示例2:

在以上实例中,获取的旋转信息是以四元数的形式表示出来(如在rotation属性中,x=1.58,但实际输出的四元数为0.01379),现在要将rotation属性以其原本的数值(欧拉角/度)形式展现出来

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*/Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);Debug.Log("GrisGO以欧拉角/度的形式表示旋转结果为" + GrisTrans.eulerAngles);}// Update is called once per framevoid Update(){}
}

Transform局部坐标和旋转信息的获取

局部坐标:子级相对于父级的位置信息

示例:输出GrisGO的局部坐标和旋转欧拉角

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*/Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO局部坐标为" + GrisTrans.localPosition);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);Debug.Log("GrisGO以欧拉角/度的形式表示旋转结果为" + GrisTrans.eulerAngles);Debug.Log("GrisGO的局部欧拉角/度的形式表示旋转结果为" + GrisTrans.localEulerAngles);}// Update is called once per framevoid Update(){}
}

Transform的缩放与正方向

缩放(Scale)

对于Scale属性,只有局部缩放LocalScale

示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*//*Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO局部坐标为" + GrisTrans.localPosition);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);Debug.Log("GrisGO以欧拉角/度的形式表示旋转结果为" + GrisTrans.eulerAngles);Debug.Log("GrisGO的局部欧拉角/度的形式表示旋转结果为" + GrisTrans.localEulerAngles);*/Debug.Log("GrisGO的局部缩放为" + GrisTrans.localScale);}// Update is called once per framevoid Update(){}
}

正方向

正方向即关于xyz轴所指的方向,其中分为有相对于世界空间的正方向和本地正方向(若无父级,则本地正方向与世界正方向相同),根据实际开发中的需求不同,调整相应的世界空间或者本地正方向的数值大小

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*//*Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO局部坐标为" + GrisTrans.localPosition);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);Debug.Log("GrisGO以欧拉角/度的形式表示旋转结果为" + GrisTrans.eulerAngles);Debug.Log("GrisGO的局部欧拉角/度的形式表示旋转结果为" + GrisTrans.localEulerAngles);*////Debug.Log("GrisGO的局部缩放为" + GrisTrans.localScale);Debug.Log("GrisGO关于x轴的正方向为" + GrisTrans.right);Debug.Log("GrisGO关于y轴的正方向为" + GrisTrans.up);Debug.Log("GrisGO关于z轴的正方向为" + GrisTrans.forward);}// Update is called once per framevoid Update(){}
}

Transform相关的查找方法

示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NO5_Transform : MonoBehaviour
{public GameObject GrisGO;// Start is called before the first frame updatevoid Start(){//Debug.Log(GrisGO.transform);Transform GrisTrans = GrisGO.transform;/*Debug.Log("GrisGO所挂载的物体的transform组件的名字为:" + GrisTrans);Debug.Log("GrisGO所挂载的游戏物体引用为" + GrisTrans.gameObject);Debug.Log("GrisGO下的子物体(Transform)个数为" + GrisTrans.childCount);*//*Debug.Log("GrisGO世界空间的坐标位置为" + GrisTrans.position);Debug.Log("GrisGO局部坐标为" + GrisTrans.localPosition);Debug.Log("GrisGO以四元数形式表示的旋转是" + GrisTrans.rotation);Debug.Log("GrisGO以欧拉角/度的形式表示旋转结果为" + GrisTrans.eulerAngles);Debug.Log("GrisGO的局部欧拉角/度的形式表示旋转结果为" + GrisTrans.localEulerAngles);*////Debug.Log("GrisGO的局部缩放为" + GrisTrans.localScale);Debug.Log("GrisGO关于x轴的正方向为" + GrisTrans.right);Debug.Log("GrisGO关于y轴的正方向为" + GrisTrans.up);Debug.Log("GrisGO关于z轴的正方向为" + GrisTrans.forward);//查找Debug.Log("当前脚本挂载的游戏对象下的叫Gris的子对象身上的Transform组件是" + transform.Find("Gris"));//索引Debug.Log("当前脚本挂载的游戏对象下的叫Gris的子对象身上的Transform组件是" + transform.GetChild(0));Debug.Log("Gris当前在此父对象同级里所在的索引位置" + GrisTrans.GetSiblingIndex());}// Update is called once per framevoid Update(){}
}

销毁游戏物体

Transform.Destroy(GrisGO);

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作系统的分类

Linux类系统的组成 Linux操作系统Linux内核Linux应用 Linux内核是什么? Linux系统内核是构成Linux操作系统核心的部分,它是操作系统中最基础和关键的组件,直接与硬件交互并管理计算机系统的底层资源。以下是Linux内核主要特性和功能的概览…

一起学习大模型 - langchain里的 PromptTemplate详细介绍

系列文章目录 一起学习大模型 - 大模型的交互工具prompt简介与运用 一起学习大模型 - langchain里的PromptTemplate详细介绍 一起学习大模型 - langchain里PromptTemplate错误排查总结 文章目录 系列文章目录前言一、 安装 LangChain二、 基本用法1. 导入库并定义模板2. 填充…

API接口通道如何设置?

API接口通道如何设置? 如果分站点的AI接口使用openai(站点后台->系统配置->AI参数配置->AI接口),则需要在超管后台配置接口通道,其他方式则无需在超管后台配置接口通道 1、进入超管后台选择接口通道&#x…

一键批量转换,高效轻松管理:解锁不同格式图片统一处理新体验,让图片管理更高效

在信息爆炸的时代,图片管理成为了一个不容忽视的问题。我们时常面临各种格式的图片文件,不同的格式不仅增加了管理的难度,还可能导致兼容性问题。如何快速高效地管理不同格式的图片,成为了现代人面临的一大挑战。现在,…

网上帮别人开网店卖货的骗局!

小红书帮别人开店卖货的骗局主要涉及到一些不法分子利用小红书平台的流量和用户信任度,通过虚假宣传、承诺高额利润等手段,诱骗用户开店并**所谓的“赚钱机会”。 这些骗局往往以“轻松创业、快速致富”为诱饵,吸引那些对创业充满热情但缺乏经…

Redis常用命令——List篇

提到List,我们第一时间想到的就是链表。但是在Redis中,List更像是一种双端队列,例如C中的deque。它可以快速高效的对头部和尾部进行插入和删除操作。本片文章主要对List列表的相关命令进行详解,希望本篇文章会对你有所帮助。 文章…

MedSegDiff-V2: Diffusion-Based Medical Image Segmentation with Transformer 论文总结

标题:MedSegDiff-V2: Diffusion-Based(基于扩散模型)Medical Image Segmentation(医学图像分割)with Transformer 论文(AAAI):https://ojs.aaai.org/index.php/AAAI/article/view/28…

【避坑全攻略】如何让私人的LLM拥有一个嗓子——ChatTTS

OpenAI 发布 GPT4o 之后,使得越来越多的人都开始幻想属于自己的AI“伴侣”,这最让人惊艳的就是他们出色的TTS技术。而在此之前,主流的开源TTS有 XTTS 2 和 Bark。而近日,一个名为 ChatTTS 文本转语音项目爆火出圈,引来…

Python中的random.choices详解

1. 什么是random.choices函数? random.choices是Python标准库中random模块提供的一个函数,用于从给定的序列中随机选择一个值。这个函数可以用于实现随机抽样、按照概率进行选择等功能。 random.choices(population, weightsNone, *, cum_weightsNone,…

.gitignore 文件

一.什么是 .gitignore 文件 在任何当前工作的 Git 仓库中,每个文件都是这样的: 追踪的(tracked)- 这些是 Git 所知道的所有文件或目录。这些是新添加(用 git add 添加)和提交(用 git commit 提…

汽美汽修店管理系统会员小程序的作用是什么

汽车后市场汽美汽修赛道同样存在着大量商家,连锁品牌店或个人小店等,门店扎堆且区域覆盖面积广,当然每天车来车往也有不少生意。 随着线上化程度加深和商家不断拓展市场的需要,传统运营模式可能难以满足现状,尤其是年…

Element - UI <el-table-column>多选数据提交后禁用已提交的多选框

1. 通过 selection-change"selectionChange" 将已选择的数据存入selectData数组中 <el-table :data"tableData" class"my-5" selection-change"selectionChange" > //多选框已选择的数据 const selectData ref([]); const sel…

在线图片测试用例

开发中经常需要mock图片&#xff0c;下面是可用于测试的在线图片URL示例&#xff0c; https://picsum.photos/200/200?random2 https://picsum.photos/200/200?random1 https://picsum.photos/300/200?random2 https://picsum.photos/300/200?random1 说明&#xff1a…

前端环境配置(后端使用前端版,简易版非专业前端)

声明本人不是专业做前端的&#xff0c;只是平常开发有时候需要运行前端代码&#xff0c;记录一下配置环境。 安装nvm nvm 即 (node version manager)&#xff0c;好处是方便切换 node.js 版本。 自己网上下载安装包即可&#xff0c;傻瓜式安装。 安装注意事项 要卸载掉现有的 …

HALCON-从入门到入门-图像格式的互相转换

1.废话 上次说到了图片的读取和写入到本地&#xff0c;这次说一下图片的格式相关。 位图和矢量图 photoshop处理出来的图片肯定叫做图片&#xff0c;那么coreDraw处理出来的图片是不是也叫图片。 之间就有区分&#xff0c;一种叫做位图&#xff0c;一种叫做矢量图 位图和矢…

AI大模型探索之路-实战篇13: 从对话到报告:打造能记录和分析的Agent智能数据分析平台

系列篇章&#x1f4a5; AI大模型探索之路-实战篇4&#xff1a;深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5&#xff1a;探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6&#xff1a;掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

echarts 图表不显示的问题

是这样的&#xff0c;点击详情&#xff0c;再点击统计&#xff0c;切换的时候就不会显示echarts图表&#xff0c;刚开始使用的是next Tick&#xff0c;没有使用定时器&#xff0c;后来加上了定时器就实现了如下所示&#xff1a; 代码是如下 const chartContainer ref(null); …

【面试题-011】如何设计一个三高系统

设计一个“三高”系统&#xff08;即高可用、高性能、高并发&#xff09;需要综合考虑系统架构、技术选型、运维管理等多个方面。以下是一些关键的设计原则和步骤&#xff1a; 1. 确定系统需求和目标 高可用&#xff1a;系统需要能够承受故障&#xff0c;并在故障发生时快速恢…

【Text2SQL 论文】DBCopilot:将 NL 查询扩展到大规模数据库

论文&#xff1a;DBCopilot: Scaling Natural Language Querying to Massive Databases ⭐⭐⭐⭐ Code: DBCopilot | GitHub 一、论文速读 论文认为目前的 Text2SQL 研究大多只关注具有少量 table 的单个数据库上的查询&#xff0c;但在面对大规模数据库和数据仓库的查询时时却…

618商品网页制作编程示例开发案列优质学习资料资源工具与案列应用场景开发文档教程资料】

创建一个简单的商品网页可以用HTML、CSS和JavaScript来实现。这种网页会包括商品的图片、名称、描述、价格和购买按钮等。下面是一个详细的源码案例及其讲解&#xff1a; 1. 文件结构 假设我们有以下文件结构&#xff1a; /product-page/imagesproduct.jpgindex.htmlstyle.c…