Unity脚本API—Transform 变换

2023-11-11

场景中的每一个对象都有一个Transform。用于储存并操控物体的位置、旋转和缩放。每一个Transform可以有一个父级,允许你分层次应用位置、旋转和缩放。可以在Hierarchy面板查看层次关系。他们也支持计数器(enumerator),因此你可以使用循环遍历子对象。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// Transfrom 提供了查找(父、根、子)变换组件功能、改变位置、角度、大小功能
/// </summary>
public class TransfromDemo : MonoBehaviour
{
    public Transform tf;
    private void OnGUI()
    {
        if (GUILayout.Button("foreach -- transfrom"))
        {
            //场景中的每一个对象都有一个Transfrom,用于存储并操控物体的位置、旋转、缩放。
            //每一个Transfrom可以有一个父级,允许你分层次应用位置、旋转和缩放。
            //可以在Hierarchy面板查看层次关系。他们也支持计算器,因此你可以使用循环遍历子对象 
            foreach (Transform child in this.transform)
            {
                //child为每个子物体的变换组件
                print(child.name);
            }
        }

        if (GUILayout.Button("root"))
        {
            //获取根物体变换组件
            Transform rootTF = this.transform.root;
            Debug.Log(rootTF.name);
        }

        if (GUILayout.Button("parent"))
        {
            //获取父物体变换组件
            Transform parentTF = this.transform.parent;
            Debug.Log(parentTF.name);
        }

        if (GUILayout.Button("Setparent"))
        {
            //设置父物体
            //当前物体的位置 视为世界坐标position
            //this.transform.SetParent(tf,true);

            //当前物体的位置 视为localPosition
            this.transform.SetParent(tf,false);
        }

        if (GUILayout.Button("Find"))
        {
            //根据名称获取子物体
            Transform tf = this.transform.Find("子物体名称");
            Debug.Log(tf.name);

            Transform tf1 = this.transform.Find("子物体名称/子物体名称");
            Debug.Log(tf1.name);
        }

        if (GUILayout.Button("GetChild"))
        {
            int count = this.transform.childCount;
            //根据索引获取子物体  不能获取孙子物体
            for (int i = 0;i < count;i++) 
            { 
                Transform childTf = this.transform.GetChild(i);
            }
        }

        //练习:在层级未知情况下查找子物体
        

        if (GUILayout.Button("pos / scale"))
        {
            //物体相对于世界坐标系原点的位置
            //this.transform.position;

            //物体相对于父物体轴心点的位置
            //this.transform.localPosition;

            //相对于父物体缩放比例  1  2  1
            //this.transform.localScale;

            //理解为:物体与模型缩放比例(自身缩放比例 * 父物体缩放比例)
            //this.transfrom.lossyScale
            //如:父物体localScale为3  当前物体localScale为2
            //    lossyScale则为6
        }


        if (GUILayout.Button("Translate"))
        {
            //向自身坐标系 Z轴 移动1米
            this.transform.Translate(0, 0, 1);

            //向世界坐标系 Z轴 移动1米
            //this.transform.Translate(0, 0, 1, Space.World);
        }

        if (GUILayout.Button("Rotate"))
        {
            //向自身坐标系 y轴 旋转10度
            //this.transform.Rotate(0, 10, 0);

            //向世界坐标系 y轴 旋转10度
            this.transform.Rotate(0, 10, 0, Space.World);
        }

        if (GUILayout.RepeatButton("RotateAround"))
        {
            //向世界坐标系 绕y轴旋转
            transform.RotateAround(Vector3.zero, Vector3.up, 1);
        }
    }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity脚本API—Transform 变换 的相关文章

  • Unity动画控制器animator.CrossFade

    需要特别注意 1 CrossFade虽然可以不用任何逻辑来链接而直接跳转 但是CrossFade只能覆盖其他动画 当当前动画播放完毕而没有跳出这个动画时再次调用CrossFade将会失败 造成动画依旧停在原位 参数animator Cros
  • Unity Shader入门精要第七章 基础纹理之遮罩纹理

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 实践 参考 前言 遮罩纹理 mask texture 是本章要介绍的最后一种纹理 它非常有用 在很多商业游戏中 都可以见到它的身影 那么什么是遮罩呢 简单来讲 遮罩允许我们
  • Unity动画系统详解

    目录 动画编辑器 编辑器面板 动画复用 前言 人形重定向动画 Humanoid 通用动画 Generic 旧版本动画 Legacy 动画控制器 系统状态 切换条件 状态机脚本 IK动画 反向动力学 BlendTree 混合树 Animato
  • Unity3d 插件 系列——DoTweenPro介绍(图文详细+案例)

    Unity3d 插件 系列 DoTweenPro介绍 图文详细 案例 前言 一 DoTweenPro简介 二 DoTweenPro安装 三 DoTweenPro主要组件 1 DoTweenAnimation 2 DoTweenPath 3
  • Unity中UI框架的使用1-添加面板、显示Loading页面

    其中BasePanel和Canvas都是挂在面板的预制物上的 1 导入我们的UI框架 本篇文章中有用的是两个UIPanelType NUIManager和NBasePanel 会放在文章最后供大家使用 2 先将我们做好的Panel设置成预制
  • Unity之获取游戏物体对象或组件的几个方法

    文章目录 前言 通过物体名称获取对象 GameObject Find Transform Find 通过物体标签获取对象 GameObject FindWithTag GameObject FindGameObjectWithTag Gam
  • unity中创建询问弹出窗口

    在开发过程中进程会遇到需要弹出一个窗口询问用户是否进行的操作 今天就来制作一个这样弹出窗口 然后根据弹出窗口的选择内容不同进行不同的操作 本例中主要是为了删除一个数据 而在删除数据操作前需要得到用户的一个确认操作 这里面主要用到了Notif
  • Unity 键盘控制人物移动——之输入方式代码的编写

    键盘输入 控制人物移动 在我们制作游戏中最常见的需求之一就是使用键盘移动游戏角色 那么我们首先需要获取键盘输入 以下提供两种方法获取键盘 这里尽量通过截图解释让大家理解代码的含义 GetInput void FixedUpdate Move
  • unity3d大型互动照片墙

    1 本次应客户需求 制作一个大型照片墙互动 输出分辨率为9600 4320 注 unity3d官方推荐最大分辨率为8192 3686 4 经过现场长达24小时暴力测试中途未发生问题 姑且判定可以达到正常标准 废话不多说 先上效果 unity
  • unity 性能查看工具Profiler

    文章目录 前言 profiler工具介绍 菜单栏 帧视图 模块视图 模块详细信息 通过profiler分析优化游戏性能 最后 前言 每次进行游戏优化的时候都用这个工具查看内存泄漏啊 代码优化啊之类的东西 真的好用 但是之前也就是自己摸索一下
  • Unity打包WebGL的优化常用操作?

    1 贴图部分优化 如果贴图格式时2048 在不影响画面效果的情况下 改成1024或者5 12 还可以缩小包体 2 压缩和解压缩问题 WebGL打包的时候分三种压缩情况 gzip 比Brotli文件打 但打包快 http和https都支持 B
  • Unity万向节死锁解决方案(2023/12/4)

    1 万向节死锁无法解决 这是因为它的特性就是如此 就像玻璃杯就是玻璃 这不可否认 别钻牛角尖昂 2 大多数情况下欧拉角足够用 例如 CF 摄像机不可能绕z轴旋转 x轴旋转也不会超过九十度 因为那样人物的腰子会被扭断 塔防游戏 保卫萝卜 吃鸡
  • unity小球跟随音乐节奏放大缩小和改变颜色

    放在小球身上 设置对应组件即可 using System Collections using System Collections Generic using Unity VisualScripting using UnityEngine
  • 【转载】【Unity】WebSocket通信

    1 前言 Unity客户端常用的与服务器通信的方式有socket http webSocket 本文主要实现一个简单的WebSocket通信案例 包含客户端 服务器 实现了两端的通信以及客户端向服务器发送关闭连接请求的功能 实现上没有使用U
  • 【Unity】运行时创建曲线(贝塞尔的运用)

    Unity 运行时创建线 贝塞尔的运用 1 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线 2 原理介绍 2 1 曲线的创建 unity建立网格曲线可以参考 Unity程序化网格体 的实现方法 主要分为顶点 三角面 U
  • VS2022 | 显示Unreal Engine日志

    VS2022 显示Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志
  • U3D游戏开发中摇杆的制作(NGUI版)

    在PC端模拟摇杆 实现控制摇杆让玩家或者物体移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine public clas
  • 游戏开发创建操作之玩家信息系统的建立

    游戏一般都需要玩家信息系统 那么我们应该如何搭建玩家信息系统 接下来我将展示一种简单的方法 完整代码如下 using System Collections using System Collections Generic using Uni
  • 游戏开发常见操作梳理之NPC药品商店系统(NGUI版)

    后续会出UGUI Json的版本 敬请期待 游戏开发中经常会出现药品商店 实际操作与武器商店类似 甚至根据实际情况可以简化设置 废话不多说 直接上代码 药品商店的源码 using System Collections using Syste
  • 游戏开发常见操作梳理之角色选择一

    进入游戏后 我们经常会进入角色选择的界面 通常是左右两个按钮可以更改角色供玩家选择 对于这种界面我们通常使用数据持久化将角色信息存储起来 接下来的笔记中 我将使用自带的数据持久化系统对其进行操作 实现角色的选择页面 后续会更新xml系列的文

随机推荐

  • 查看Android打包时签名文件keystore的MD5值

    有些SDK提供方需要我们提供打包APK时使用的包名和签名文件 xxxxxx jks这个文件 MD5值 然后SDK服务端应该会进行比对保证商户调用的合法性 不然光靠包名是可以伪造的 怎么获取签名文件的MD5值 方法一 原先通过命令keytoo
  • cuda三维纹理内存的使用

    有时候需要使用cuda处理多帧的图像 需要把多帧时间序列的图像传入到显存中 这个时候就可以把保存图像的全局内存绑定到二维纹理内存 核函数通过纹理拾取来访问输入的图像数据 不过二维纹理内存的宽是有限制的 cudaChannelFormatDe
  • 【OpenCV】 级联分类器训练模型

    目录 一 OpenCV级联分类器概念 二 OpenCV级联分类器操作步骤 三 样本采集工作原理分析一 四 样本采集工作原理分析二 五 创建自己的级联分类器 5 1 创建自己的级联分类器第一步 5 2 创建自己的级联分类器第二步 5 3 创建
  • CTF-信息收集篇

    这里是参考了CTFSHOW中的web入门中的题目 来学习关于CTF中的信息收集上的知识点 目录 web 1 web 2 web 3 web 4 web 5 web 6 web 7 web 8 web 9 web 10 web 11 web
  • 记第一次学习搭建web渗透靶场(vulhub)

    一个非常适合小白使用的靶场 valhub官网 https vulhub org github地址 https github com vulhub vulhub 二 只需要在Linux环境下安装即可 最好是Ubuntu 官网推荐的是克隆模式
  • 巡检服务

    巡检管理服务是指服务商对客户的IT应用系统 业务系统及相关设备进行周期性 主动性的健康检查服务 旨在及时发现已有或潜在问题 提出改进建议和措施 防止故障的发生 围绕巡检服务管理的目标进行巡检服务规划 组建巡检服务团队 监理巡检服务管理制度及
  • 如何查看Jetson TX1/2 CPU和GPU性能使用状态

    如何查看Jetson TX1 2 CPU和GPU性能使用状态 官方给了一个脚本文件 我们使用超级权限运行即可 sudo tegrastats 效果如下 RAM 4634 7854MB lfb 2x512kB cpu 0 1112 off o
  • Java 集合之Collection

    首先我们看下Collection的结构图 从结构图上我们可以看到Collection集合下面有3个比较大的实现 Set List Queue在日常开放过程中我们比较常用的是Set与List 针对Queue我在之前的博客中也有所介绍 在这里不
  • 登录界面设计测试---适合背诵

    主要从功能 易用性 性能 安全 兼容 一 功能测试 1 7 case 主要体现 用户名和密码 账号问题 8 12 case 主要体现 验证 图片或短信 13 20 case 主要体现 特别场景 1 输入已注册的用户名和正确的密码 验证是否成
  • Window的Java环境安装

    一 Window的Java环境安装 1 下载百度网盘的Java环境jdk 8u131 windows x64 exe 2 点击jdk 8u131 windows x64 exe 下一步 3 更改Java你想安装位置 点击下一步 4 Java
  • MATLAB反三角函数arcsecx, arccscx, arctanx, arccotx, arcsinx, arccosx绘图表示

    matlab源代码 依次为 arcsecx arccscx arctanx arccotx arcsinx arccosx figure 1 x 0 0 01 pi y sec x plot y x title arcsecx set gc
  • (一)调试RocketMq源码

    文章目录 一 启动NameServer 1 1namesrv模块找到NamesrvStartup java 1 2修改配置文件目录 1 3启动NamesrvStartup java 二 配置Broker 2 1配置BrokerStartup
  • Ubuntu Linux中hostname`命令

    当然 让我们将关于在Ubuntu Linux中理解hostname的知识转化为列表形式 参考 https www howtouseubuntu com network change hostname in ubuntu linux 定义 h
  • 第四章 Linux实用操作

    1 软件安装 1 1 CentOS 1 2 Ubuntu 2 systemctl控制软件启动关闭 mp4 3 软链接 4 日期和时区 4 1 date命令 4 2 ntp程序 4 3 小结 5 IP地址和主机名 6 配置Linux固定IP地
  • 【干货】PCB线宽与电流关系

    以下总结了八种电流与线宽的关系公式 表和计算公式 虽然各不相同 大体相近 但大家可以在实际的PCB板设计中 综合考虑PCB板的大小 通过电流 选择一个合适的线宽 PCB电流与线宽 PCB载流能力的计算一直缺乏权威的技术方法 公式 经验丰富C
  • MoCo v1 论文笔记

    Momentum Contrast for Unsupervised Visual Representation Learning 论文笔记 DETR 论文笔记 Momentum Contrast for Unsupervised Visu
  • 三因素方差分析_【科研加油站】SPSS操作之三因素方差分析

    点击上方蓝字 轻松关注我们 以下内容转载自 医咖会 微信公众号 medieco ykh 作者Jane 上一期我们讨论了双因素方差分析 本期 科研加油站 栏目 我们一起来探讨三因素方差分析 问题与数据 某研究者想研究某类新药降低胆固醇水平的效
  • CData API Server全面且文档完整的API

    CData API Server全面且文档完整的API 使用现有业务信息创建API 连接到任何SQL以及NoSQL数据库以及API服务器 都会立即生成灵活 全面且文档完整的API 发现数据集成的潜力 API服务器API服务器提供了在企业AP
  • register的用法c语言,C语言中auto,static,register,extern存储类型的用法

    在C语言中提供的存储类型说明符有auto extern static register 说明的四种存储类别 四种存储类别说明符有两种存储期 自动存储期和静态存储期 其中auto和register对应自动存储期 具有自动存储期的变量在进入声明
  • Unity脚本API—Transform 变换

    场景中的每一个对象都有一个Transform 用于储存并操控物体的位置 旋转和缩放 每一个Transform可以有一个父级 允许你分层次应用位置 旋转和缩放 可以在Hierarchy面板查看层次关系 他们也支持计数器 enumerator