unity学习25:用 transform 进行旋转和移动,简单的太阳地球月亮模型,以及父子级关系
目录
备注内容
1游戏物体的父子级关系
1.1 父子物体
1.2 坐标关系
1.3 父子物体实际是用 每个gameobject的tranform来关联的
2 获取gameObject的静态数据
2.1 具体命令
2.2 具体代码
2.3 输出结果
3 获取gameObject 的方向
3.1 游戏里默认的3个方向
3.2 获取方向代码
3.3 输出
4 游戏里的 旋转,朝向
4.1 始终朝向某点:transform.LookAt()
4.2 自转 transform.Rotate()
4.3 公转 transform.RotateAround()
4.4 自转+公转的 Sun- Earth- Moon 效果
5 游戏里的直线移动 transform.Translate()
5 游戏里 gameObject的父子关系
备注内容
- 注释 //
- 注释 /* */ 大段block注释
1游戏物体的父子级关系
1.1 父子物体
- 游戏物体的父子级关系
- 实际是用 每个gameobject的tranform来关联的

1.2 坐标关系
- tranform.position //这个是unity里的绝对位置
- tranform.localPosition //这个是相对于父物体的位置,也是unity编辑器里显示的坐标位置

1.3 父子物体实际是用 每个gameobject的tranform来关联的
- 父子物体实际是用 每个gameobject的tranform来关联的
2 获取gameObject的静态数据
2.1 具体命令
//获取位置
Debug.Log(transform.position); // 返回一个Vector3
Debug.Log(transform.localPosition); // 返回一个Vector3
//获取旋转的四元数,和欧拉角
Debug.Log(transform.rotation); // 返回四元数
Debug.Log(transform.localRotation);
Debug.Log(transform.eulerAngles); // 返回一个Vector3
Debug.Log(transform.localEulerAngles); // 返回一个Vector3
//获取缩放
Debug.Log(transform.localScale); // 返回一个Vector3
2.2 具体代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TransformTest : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){//获取位置Debug.Log(transform.position);Debug.Log(transform.localPosition);//获取旋转的四元数,和欧拉角Debug.Log(transform.rotation);Debug.Log(transform.localRotation);Debug.Log(transform.eulerAngles);Debug.Log(transform.localEulerAngles);//获取缩放Debug.Log(transform.localScale);}// Update is called once per framevoid Update(){}
}
2.3 输出结果

3 获取gameObject 的方向
3.1 游戏里默认的3个方向
- z 蓝色,forward
- X 红色, right
- Y 绿色, up

3.2 获取方向代码,如transform.forward
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TransformTest : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){//获取位置Debug.Log(transform.position);Debug.Log(transform.localPosition);//获取旋转的四元数,和欧拉角Debug.Log(transform.rotation);Debug.Log(transform.localRotation);Debug.Log(transform.eulerAngles);Debug.Log(transform.localEulerAngles);//获取缩放Debug.Log(transform.localScale);//获取方向向量Debug.Log(transform.forward);Debug.Log(transform.right);Debug.Log(transform.up);}// Update is called once per framevoid Update(){}
}
3.3 输出

4 游戏里的 旋转,朝向
4.1 始终朝向某点:transform.LookAt()
//一直面向/朝向某个点
Vector3 pos1=new Vector3(0,0,0);
transform.LookAt(pos1);
- transform.LookAt(Vector3)
- 参数必须是1个 Vector3
- 而Vector3 变量,定义时,必须new1个实例出来用
- Vector3 pos1=new Vector3(0,0,0);
- 测试时注意:如果测试的GB是个球
- 其实,这个物体的3个轴还是不变的,只是球上面的旋转曲线可以看出来,因为始终朝向某个点,所以其实球自身发生了旋转。
4.2 自转 transform.Rotate()
//自转
transform.Rotate(Vector3.up,3f);
- transform.Rotate(Vector3.up,3f);
- 参数1:坐标轴
- 参数2:速度,注意浮点数需要时0.3f这样
4.3 公转 transform.RotateAround()
//公转
transform.RotateAround(Vector3.zero,Vector3.up,0.1f);
- transform.RotateAround(Vector3.zero,Vector3.up,0.1f);
- 参数1:公转的中心点
- 参数2:坐标轴
- 参数3:速度,注意浮点数需要时0.3f这样
4.4 自转+公转的 Sun- Earth- Moon 效果


- 上面是代码测试效果
- Sun放在 Vector(0,0,0) 点
- Earth 挂代码 TransformTest1
- Moon 挂代码 TransformTest1

TransformTest1
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TransformTest1 : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){//一直面向/朝向某个点Vector3 pos1=new Vector3(0,0,0);transform.LookAt(pos1);//自转transform.Rotate(Vector3.up,3f);//公转transform.RotateAround(Vector3.zero,Vector3.up,0.1f);}
}
TransformTest2 其实和 TransformTest1差不多
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TransformTest2 : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){//自转transform.Rotate(Vector3.up,1f);//公转transform.RotateAround(transform.parent.gameObject.transform.position,Vector3.up,0.5f);}
}
5 游戏里的直线移动 transform.Translate()
//直线移动
transform.Translate(Vector3.forward*0.1f);
5 游戏里 gameObject的父子关系
- 修改 Earth的脚本
- //获取父物体,父物体只有1个
- Debug.Log(transform.parent.gameObject);
- //子物体个数
- Debug.Log(transform.childCount);
- //解除与子物体的关系
- transform.DetachChildren();
- //获取子物体,可能有很多个
- Transform tran1=transform.Find("Moon");
- tran1=transform.GetChild(0);
- //判断一个物体是不是另外一个物体的子物体
- //transform默认就是this.transform
- bool res=tran1.IsChildOf(transform);
- Debug.Log(res);
- //设置父物体(设置自身为自己的父物体--没意义只是测试)
- tran1.SetParent(transform);
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TransformTest1 : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){//获取父物体,父物体只有1个Debug.Log(transform.parent.gameObject);//子物体个数Debug.Log(transform.childCount);//接触与子物体的关系transform.DetachChildren();//获取子物体,可能有很多个Transform tran1=transform.Find("Moon");tran1=transform.GetChild(0);//判断一个物体是不是另外一个物体的子物体//transform默认就是this.transformbool res=tran1.IsChildOf(transform);Debug.Log(res);//设置父物体(设置自身为自己的父物体--没意义只是测试)tran1.SetParent(transform);}// Update is called once per framevoid Update(){//一直面向/朝向某个点Vector3 pos1=new Vector3(0,0,0);transform.LookAt(pos1);//自转transform.Rotate(Vector3.up,3f);//公转transform.RotateAround(Vector3.zero,Vector3.up,0.1f);}
}
相关文章:
unity学习25:用 transform 进行旋转和移动,简单的太阳地球月亮模型,以及父子级关系
目录 备注内容 1游戏物体的父子级关系 1.1 父子物体 1.2 坐标关系 1.3 父子物体实际是用 每个gameobject的tranform来关联的 2 获取gameObject的静态数据 2.1 具体命令 2.2 具体代码 2.3 输出结果 3 获取gameObject 的方向 3.1 游戏里默认的3个方向 3.2 获取方向代…...
【项目集成Husky】
项目集成Husky 安装初始化 Husky在.husky → pre-commit文件中添加想要执行的命令 安装 使用 Husky 可以帮助你在 Git 钩子中运行脚本,例如在提交代码前运行测试或格式化代码pnpm add --save-dev husky初始化 Husky npx husky init这会在项目根目录下创建一个 .hu…...
基于Spring Security 6的OAuth2 系列之七 - 授权服务器--自定义数据库客户端信息
之所以想写这一系列,是因为之前工作过程中使用Spring Security OAuth2搭建了网关和授权服务器,但当时基于spring-boot 2.3.x,其默认的Spring Security是5.3.x。之后新项目升级到了spring-boot 3.3.0,结果一看Spring Security也升级…...
【Matlab高端绘图SCI绘图模板】第006期 对比绘柱状图 (只需替换数据)
1. 简介 柱状图作为科研论文中常用的实验结果对比图,本文采用了3组实验对比的效果展示图,代码已调试好,只需替换数据即可生成相关柱状图,为科研加分。通过获得Nature配色的柱状图,让你的论文看起来档次更高࿰…...
Java 大视界 -- Java 大数据在生物信息学中的应用与挑战(67)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
.NET Core 中依赖注入的使用
ASP.NET Core中服务注入的地方 在ASP.NET Core项目中一般不需要自己创建ServiceCollection、IServiceProvider。在Program.cs的builder.Build()之前向builder.Services中注入。在Controller中可以通过构造方法注入服务。 低使用频率的服务 把Action用到的服务通过Action的参…...
deepseek 潜在变量Z的计算;变分自编码器(VAE); 高斯混合模型(GMM)
潜在注意力:潜在变量 Z Z Z的计算 潜在变量 Z Z Z...
rsync安装与使用-linux015
使用 rsync 可以非常高效地将文件或目录从一个服务器传输到另一个服务器。 能力: 支持 64 位文件、64 位 inode、64 位时间戳、64 位长整型支持套接字对、符号链接、符号链接时间、硬链接、硬链接特殊文件、硬链接符号链接支持 IPv6、访问时间(atimes&…...
CAP 定理的 P 是什么
分布式系统 CAP 定理 P 代表什么含义 作者之前在看 CAP 定理时抱有很大的疑惑,CAP 定理的定义是指在分布式系统中三者只能满足其二,也就是存在分布式 CA 系统的。作者在网络上查阅了很多关于 CAP 文章,虽然这些文章对于 P 的解释五花八门&am…...
【multi-agent-system】ubuntu24.04 安装uv python包管理器及安装依赖
uv包管理器是跨平台的 参考sudo apt-get update sudo apt-get install -y build-essential我的开发环境是ubuntu24.04 (base) root@k8s-master-pfsrv:/home/zhangbin/perfwork/01_ai/08_multi-agent-system# uv venv 找不到命令 “uv”,但可以通过以下软件...
JavaScript原型链与继承:优化与扩展的深度探索
在 JavaScript 的世界里,万物皆对象,而每个对象都有一个与之关联的原型对象,这就构成了原型链的基础。原型链,简单来说,是一个由对象的原型相互连接形成的链式结构 。每个对象都有一个内部属性[[Prototype]]࿰…...
5 长度和距离计算模块(length.rs)
这段代码定义了一个泛型结构体 Length<T, Unit>,用于表示一维长度,其中 T 表示长度的数值类型,而 Unit 是一个编译时检查单位一致性的占位符类型,不会用于运行时表示长度的值。这个设计允许开发者在编译阶段确保不同单位之间…...
ollama改模型的存盘目录解决下载大模型报c:盘空间不足的问题
使用Ollama和Open WebUI快速玩转大模型:简单快捷的尝试各种llm大模型,比如DeepSeek r1,非常简单方便,参见:使用Ollama和Open WebUI快速玩转大模型:简单快捷的尝试各种llm大模型,比如DeepSeek r1…...
OSCP:常见文件传输方法
在渗透测试过程中,文件传输是一个关键环节,涉及不同的协议和工具,本文整理了 Linux 和 Windows 系统下常见的文件传输方法,并提供相应的命令示例。 通用文件传输方式 Base64 编码传输 Base64 可用于跨平台传输文件,…...
B站吴恩达机器学习笔记
机器学习视频地址: 4.5 线性回归中的梯度下降_哔哩哔哩_bilibili 机器学习分类: 1. 有监督学习(Supervised Learning) 在有监督学习中,训练数据包含了输入特征和正确的输出标签,模型通过这些带有标签的…...
Java 性能优化与新特性
Java学习资料 Java学习资料 Java学习资料 一、引言 Java 作为一门广泛应用于企业级开发、移动应用、大数据等多个领域的编程语言,其性能和特性一直是开发者关注的重点。随着软件系统的规模和复杂度不断增加,对 Java 程序性能的要求也越来越高。同时&a…...
【计算机网络】host文件
host文件的主要功能: 域名解析 本地映射:host文件的主要功能是将**域名映射到相应的 IP 地址**。当计算机需要访问一个网站或服务时,它会首先在 host文件中查找该域名对应的 IP 地址。如果在 host文件中找到了匹配的域名和 IP 地址映射&…...
【C语言】在Windows上为可执行文件.exe添加自定义图标
本文详细介绍了在 Windows 环境下,如何为使用 GCC 编译器编译的 C程序 添加自定义图标,从而生成带有图标的 .exe 可执行文件。通过本文的指导,读者可以了解到所需的条件以及具体的操作步骤,使生成的程序更具专业性和个性化。 目录 1. 准备条件2. 具体步骤步骤 1: 准备资源文…...
爬虫基础(五)爬虫基本原理
目录 一、爬虫是什么 二、爬虫过程 (1)获取网页 (2)提取信息 (3)保存数据 三、爬虫可爬的数据 四、爬虫问题 一、爬虫是什么 互联网,后面有个网字,我们可以把它看成一张蜘蛛网…...
力扣【1049. 最后一块石头的重量 II】Java题解(背包问题)
让石头分成重量相同的两堆(尽可能相同),相撞之后剩下的石头就是最小的。进一步转化成容量为重量总喝一半的背包最多可以装多少质量的石头。这样就转化成了背包问题。 最后求结果时,我们所最多能装的时dp[target],那另一…...
Cursor Pro功能优化工具:提升AI编程体验的完整指南
Cursor Pro功能优化工具:提升AI编程体验的完整指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial …...
【C++:红黑树】4 条规则深度理解红黑树:从原理、变色、旋转到完整实现代码
🔥小叶-duck:个人主页 ❄️个人专栏:《Data-Structure-Learning》《C入门到进阶&自我学习过程记录》 《算法题讲解指南》--优选算法 《算法题讲解指南》--递归、搜索与回溯算法 《算法题讲解指南》--动态规划算法 ✨未择之路࿰…...
自己搭建永磁同步电机参数变动模块:为预测控制助力
永磁同步电机参数不确定/参数变化/参数失配/参数摄动模块 其中直交轴电感,电阻,磁链,转动惯量,粘滞摩擦系数可设置为自己所需的时变工况 适合做预测控制的同志们 由于MATLAB封装模块不可改动,于是自己搭建了这个模块,默认版本为2021b最近在研…...
松江少儿英语口碑好的?
松江少儿英语口碑好的 环球乐学少儿英语,指出幼儿英语学习三大痛点: 1. 兴趣不足易抵触:教学形式枯燥,多以机械记单词、跟读为主,不符合幼儿认知特点,易产生厌学情绪。 2. 缺语境不会运用:…...
Dify工作流HTTP请求配置全攻略:从基础到进阶的系统优化指南
Dify工作流HTTP请求配置全攻略:从基础到进阶的系统优化指南 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-…...
百川2-13B量化模型调优指南:降低OpenClaw任务失败率的3个技巧
百川2-13B量化模型调优指南:降低OpenClaw任务失败率的3个技巧 1. 为什么需要针对量化模型做特殊调优? 上周我让OpenClaw帮我整理一个包含300多份PDF的文献库,结果连续跑了3次都中途崩溃。查看日志才发现,百川2-13B量化模型在处理…...
OpenClaw模型热切换:GLM-4.7-Flash与Qwen3-32B的任务适配对比
OpenClaw模型热切换:GLM-4.7-Flash与Qwen3-32B的任务适配对比 1. 为什么需要模型热切换 上周我在用OpenClaw处理一个复杂的文件整理任务时,遇到了一个典型问题:Qwen3-32B模型虽然能给出高质量的文件分类建议,但每个决策都要消耗…...
让 Launchpad Designer 也拥有一致的 Fiori 登录体验:从 SICF 配置到版本差异的完整实战解析
在 SAP Fiori 项目里,很多团队把注意力都放在 Launchpad 本身的主题、磁贴、目录、目标映射和角色分配上,却很容易忽略一个看起来不起眼、实际上会直接影响运维效率和管理员体验的细节:Launchpad Designer 的登录页。官方文档明确说明,SAP Fiori 的登录页本质上是对标准 AB…...
Dreambooth-Stable-Diffusion多概念训练技巧:同时训练多个主体和风格的完整指南
Dreambooth-Stable-Diffusion多概念训练技巧:同时训练多个主体和风格的完整指南 【免费下载链接】Dreambooth-Stable-Diffusion Implementation of Dreambooth (https://arxiv.org/abs/2208.12242) by way of Textual Inversion (https://arxiv.org/abs/2208.01618)…...
GD32串口DMA实战:如何优化数据传输效率与内存占用
GD32串口DMA实战:如何优化数据传输效率与内存占用 在嵌入式开发中,串口通信是最基础也最常用的外设之一。当面对高速数据流或实时性要求较高的场景时,传统的轮询或中断方式往往难以满足需求。这时,DMA(直接内存访问&am…...
