【Unity】 HTFramework框架(四十八)使用Location设置Transform位置、旋转、缩放

更新日期:2024年5月14日。
Github源码:[点我获取源码]
Gitee源码:[点我获取源码]

索引

  • Location
    • 定义Location
    • 复制Location变量的值
    • 复制Transform组件的Location值
    • 粘贴Location变量的值
    • 粘贴Location值到Transform组件
    • 在代码中使用Location

Location

HT.Framework.Location是一个自定义的数据类型,使用Location来获取、设置Transform组件的位置、旋转、缩放等(局部坐标),将更具便捷性和直观性。

我们可以查看他的定义,其实很简单,就是包装了三个值:

namespace HT.Framework
{
    /// <summary>
    /// 物体位置(包含局部坐标、局部旋转、局部缩放)
    /// </summary>
    [Serializable]
    public sealed class Location
    {
        /// <summary>
        /// 局部坐标
        /// </summary>
        public Vector3 Position;
        /// <summary>
        /// 局部旋转
        /// </summary>
        public Vector3 Rotation;
        /// <summary>
        /// 局部缩放
        /// </summary>
        public Vector3 Scale;
    }
}

定义Location

首先,定义一个Location变量:

    [Label("位置")] public Location Loc;

回到Unity编辑器中,查看此属性的检视器面板:
在这里插入图片描述

复制Location变量的值

我们可以看到Location变量的后面有一个铅笔图标,点击这个按钮,并选择Copy,可以复制此Location变量的值:
在这里插入图片描述

复制Transform组件的Location值

我们在Transform组件上点击鼠标右键,并选择Copy => Location,可以复制此Transform组件的Location值:
在这里插入图片描述

粘贴Location变量的值

点击Location变量后面的铅笔按钮,并选择Paste,可以将已复制(从其他Location复制,或Transform组件复制而来)的值粘贴到此Location变量:

在这里插入图片描述

粘贴Location值到Transform组件

同理,我们在Transform组件上点击鼠标右键,并选择Paste => Location,可以将已复制(从其他Location复制,或Transform组件复制而来)的Location值粘贴到此Transform组件:
在这里插入图片描述
至此,在编辑器中复制粘贴Transform组件的位置、旋转、缩放等将相当便捷。

在代码中使用Location

一个常见的例子,将物体A位置、旋转、缩放(局部坐标)等属性设置给物体B,常规的做法如下:

public class Test : HTBehaviour
{
    public GameObject A;
    public GameObject B;

    protected override void Awake()
    {
        base.Awake();

        B.transform.localPosition = A.transform.localPosition;
        B.transform.localRotation = A.transform.localRotation;
        B.transform.localScale = A.transform.localScale;
    }
}

使用Location简化代码后:

public class Test : HTBehaviour
{
    public GameObject A;
    public GameObject B;

    protected override void Awake()
    {
        base.Awake();

        B.transform.SetLocation(A.transform.GetLocation());
    }
}

当然,Location简化的并不单单是代码行数,而是提升了便捷性、容错性和可读性。

那么,今天的分享到此结束!

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

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

相关文章

2.3 应用集成技术

第2章 信息技术知识 2.3 应用集成技术 2.3.1 数据库与数据仓库技术 数据库 以单一的数据源即数据库为中心进行事务处理、批处理、决策分析等各种数据处理工作操作型处理也称事务处理&#xff0c;指的是对联机数据库的日常操作&#xff0c;通常是对数据库中记录的查询和修改…

微信小程序主体变更的操作教程

小程序迁移变更主体有什么作用&#xff1f;进行小程序主体迁移变更&#xff0c;那可是益处多多呀&#xff01;比方说&#xff0c;能够解锁更多权限功能&#xff1b;在公司变更或注销时&#xff0c;还能保障账号的正常使用&#xff1b;此外&#xff0c;收购账号后&#xff0c;也…

Nat Plants | 植物抽核单细胞!多组学探究大豆根瘤成熟过程

发表时间&#xff1a;2023-04 发表期刊&#xff1a;Nature Plants 影响因子&#xff1a;17.352 DOI&#xff1a;10.1038/s41477-023-01387-z 研究背景 根瘤菌是亲和互作寄主植物&#xff0c;感染宿主并在根部形成共生器官根瘤&#xff0c;具有固氮…

vue3中通过自定义指令实现loading加载效果

前言 在现代Web开发中&#xff0c;提升用户体验一直是开发者们追求的目标之一。其中&#xff0c;一个常见的场景就是在用户与应用程序进行交互时&#xff0c;特别是当进行异步操作时&#xff08;如网络请求&#xff09;&#xff0c;为用户提供即时的反馈&#xff0c;避免用户因…

docker实验

1.Docker安装部署 &#xff08;1&#xff09;.关闭防火墙 &#xff08;2&#xff09;.更新源 &#xff08;3&#xff09;设置Docker仓库 &#xff08;4&#xff09;启动docker &#xff08;5&#xff09;查看版本&#xff1a; 2.Docker pull 容器并运行服务&#xff1b; 拉取…

项目9-网页聊天室1(注册+Bycrpt加密)

1.准备工作 1.1.前端页面展示 1.2 数据库的建立 我们通过注册页面&#xff0c;考虑如何设计用户表数据库。 用户id&#xff0c;userId用户名&#xff0c;唯一&#xff0c;username用户密码&#xff0c;password&#xff08;包括密码和确认密码ensurePssword【数据库没有该字段…

PXI/PXIe规格 A429/717 航电总线适配卡

A429是一款标准的PXI/PXIe1规格的多协议总线适配卡。该产品最多支持36个A429通道&#xff0c;或32个A429通道加4个A717通道&#xff0c;每个A429和A717通道可由软件配置成接收或发送&#xff0c;可满足A429总线和A717总线的通讯、测试和数据分析等应用需求。 该产品的每个A429通…

儿童身高成长:关注每一厘米的成长

引言&#xff1a; 儿童的身高发育是家长和教育者普遍关注的问题&#xff0c;它不仅关乎孩子的外貌形象&#xff0c;更与孩子的健康成长密切相关。本文将深入探讨儿童身高的注意事项&#xff0c;为家长和教育者提供科学的指导&#xff0c;帮助孩子健康成长。 1. 身高发育的基本知…

BM11 链表相加(二)

描述 假设链表中每一个节点的值都在 0 - 9 之间&#xff0c;那么链表整体就可以代表一个整数。 给定两个这种链表&#xff0c;请生成代表两个整数相加值的结果链表。 数据范围&#xff1a;0≤&#x1d45b;,&#x1d45a;≤10000000≤n,m≤1000000&#xff0c;链表任意值 0≤…

前端面试:项目细节|项目重难点|已工作|做分享

面试官提问&#xff1a;分享一个项目中记忆比较深刻的需求&#xff1f;说说你是怎么解决的&#xff1f;解决过程有没有遇到什么困难&#xff1f; 答&#xff1a;我的回答&#xff08;我分点写思路&#xff0c;便于大家观看&#xff09;&#xff1a; &#xff08;1&#xff09…

C语言例题41、八进制转换为十进制

#include<stdio.h>void main() {int x;printf("请输入一个8进制整数&#xff1a;");scanf("%o", &x);printf("转换成十进制后的整数为%d\n", x); }运行结果&#xff1a; 本章C语言经典例题合集&#xff1a;http://t.csdnimg.cn/FK0Qg…

Web3时代的技术革新:区块链与人工智能的融合

随着科技的飞速发展&#xff0c;区块链和人工智能作为两大颠覆性技术正呈现出日益紧密的融合趋势。在Web3时代&#xff0c;这种融合将推动技术革新&#xff0c;引领着我们进入全新的数字时代。本文将深入探讨区块链与人工智能的融合&#xff0c;探索其在各个领域的应用前景和挑…

美国多IP服务器为企业的数据分析提供了强大的技术支持

美国多IP服务器为企业的数据分析提供了强大的技术支持 在当今数字化时代&#xff0c;数据分析已经成为企业决策和战略规划的核心。而美国多IP服务器则为企业提供了强大的技术支持&#xff0c;帮助它们有效地进行数据分析&#xff0c;从而更好地理解市场、优化运营&#xff0c;…

常见物联网面试题详解

物联网一直是非常火热的行业&#xff0c;G端如智慧城市、智慧工厂、智慧园区、智慧水利、智慧矿山等行业&#xff0c;都会涉及到物联网&#xff0c;基本都是软硬一体&#xff0c;因此当面试相关企业时&#xff0c;物联网平台是面试企业重点考察的项&#xff0c;小伙伴如果从事相…

十一、 进行个人信息保护认证的流程是怎样的?

2022 年 11 月 18 日&#xff0c;国家市场监督管理总局和国家网信办发布的《认证公告》以及附件《认证规则》&#xff0c;对开展个人信息保护认证的流程进行了细节说明&#xff0c;包括认证委托、技术验证、现场审核、认证结果评价和批准等环节。《认证公告》指出“从事个人信息…

软件测试之【软件测试初级工程师技能点全解】

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f525; 欢迎来到我的博客 &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️寻至善的主页 文章目录 &#x1f525;前言&#x1f680;初级测试工程师技能点&#x1f449;测试理论基…

【数据结构】线性表----链表详解

数据结构—-链表详解 目录 文章目录 链表的定义链表的构成链表的分类双向和单向带头和不带头循环和不循环 链表的命名基本操作的实现初始化打印取值查找插入指定位置插入删除删除销毁 部分其他链表的代码实现循环链表双向链表 优点/缺点&#xff08;对比顺序表&#xff09;优点…

SQL Server (MSSQLSERVER) 服务无法启动

解决方法&#xff1a; 打开服务&#xff0c;右键SQL Server (MSSQLSERVER) ->属性->登录&#xff0c;改为本地系统用户

OpenGL入门第四步:摄像机视角变换与交互

OpenGL入门第一步:创建窗口、重写虚函数-CSDN博客 OpenGL入门第二步:颜色、纹理设置(解析)-CSDN博客 OpenGL入门第三步:矩阵变换、坐标系统-CSDN博客 目录 函数解析 具体代码 函数解析 相机视角变换需要与鼠标键盘进行交互,需要重写鼠标和键盘响应函数。 初始化 …

如何安装在系统中安装make命令

文章目录 WindowsMacUbuntuCentOS/Red Hat make是系统比较基础的命令&#xff0c;一般会自己携带&#xff0c;如果没有就手动安装一下吧。 Windows 从官网下载 make.exe Make for Windows 官网首页&#xff1a;https://www.gnu.org/software/make/ 下载地址&#xff1a;htt…