【Unity3D脚本】Transform类

这篇具有很好参考价值的文章主要介绍了【Unity3D脚本】Transform类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎大家学习指正

目录

一、Transform类简介

二、个别核心功能介绍

1.查找变换组件

 2.改变位置、角度

1.缩放

2.移动

3.旋转 

4.设置父物体 

总结


一、Transform类简介

Transform类提供了查找(父、根、子)变换组件、改变位置、角度、大小功能

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

二、个别核心功能介绍

1.查找变换组件

代码如下(示例):

if (GUILayout.Button("foreach -- transform"))
        {
            foreach (Transform child in this.transform)
            {
                //child 是  每个子物体的变换组件
                //child.position += Vector3.up * 10.0F;
                print(child.name);


            }
        }ps:该处是查找当前物体的子物体的变换组件并且打印出来

当前层级(cube)

unity脚本中的transform,unity,python,开发语言,c#,游戏引擎,unity

测试:

unity脚本中的transform,unity,python,开发语言,c#,游戏引擎,unity

 2.改变位置、角度

1.缩放

缩放会根据父物体和自身进行等比例缩放

if (GUILayout.Button("foreach--position"))
		{
			物体相对于世界坐标系原点的位置
			this.transform.position
			物体相对于父物体轴心点的位置
			this.transform.localPosition
			物体相对于父物体缩放比例  1  2  1
			this.transform.localScale
			理解:物体与模型缩放比例(自身缩放比例*父物体缩放比例)
			this.transform.lossyScale
			如:父物体localScale为3  当前物体localScale为2
			 lossyScale 则为6
		}

2.移动

	if(GUILayout.Button("pos/scale"))
        {
			//向z轴移动1m
			//this.transform.Translate(0, 0, 1);
			//向世界坐标z轴移动1m
			this.transform.Translate(0, 0, 1,Space.World);
		}

测试:

初始

unity脚本中的transform,unity,python,开发语言,c#,游戏引擎,unity

 移动后:

ps:这里我移动了很多下

unity脚本中的transform,unity,python,开发语言,c#,游戏引擎,unity

3.旋转 

if (GUILayout.Button("Rotate"))
        {
			// 沿自身坐标系 y轴旋转10°
			//this.transform.Rotate(0, 10, 0);
			//沿自身坐标系 y轴旋转10°
			this.transform.Rotate(0, 10, 0, Space.World);
		}

ps:这个测试是后者沿自身转 

unity脚本中的transform,unity,python,开发语言,c#,游戏引擎,unity

测试后:

 unity脚本中的transform,unity,python,开发语言,c#,游戏引擎,unity


4.设置父物体 

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

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

类中设置public Transform tf; 

测试:

 unity脚本中的transform,unity,python,开发语言,c#,游戏引擎,unity

 unity脚本中的transform,unity,python,开发语言,c#,游戏引擎,unity

测试后:

unity脚本中的transform,unity,python,开发语言,c#,游戏引擎,unity

总结

这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了Transform类,还有很多类api手册里都有暂时测试这么多文章来源地址https://www.toymoban.com/news/detail-602103.html

到了这里,关于【Unity3D脚本】Transform类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity3D】Unity 脚本 ② ( Visual Studio 2019 中的 Unity 编译环境配置 | Unity 编辑器关联外部 C# 脚本编辑器 Visual Studio )

    在上一篇博客 【Unity3D】Unity 脚本 ① ( 创建 C# 脚本 | Visual Studio 2019 中打开 C# 脚本 | 编译 C# 脚本 | 挂载 C# 脚本到游戏物体 | 运行脚本 ) 中 , 双击 Unity 编辑器中的 Project 窗口中的 C# 脚本 , 进入到 Visual Studio 中出现下图样式 , 这是因为没有配置 Unity 编译环境 ; 参考如下两个博

    2023年04月08日
    浏览(42)
  • 【Unity3D日常开发】Unity3D中实现不同脚本之间的执行顺序控制

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 首先,来了解一下事件函数的执行顺序,下图是官方给的脚本中事件函数的执行顺序: 众所周知,U

    2024年02月02日
    浏览(38)
  • Unity3D 脚本3(旋转)

    一、物体的旋转 给物体调转一个旋转角度。 1、Quaternion四元组(x,y,z,w) transfrom.rotation()=... 不方便操作,官方不建议用 2、Euler Angle 欧拉角 transfrom.eulerAngles = new Vector(0,45,0); transfrom.LocalE ulerAngles = new Vector(0,45,0); 这样就可以让物体旋转45度。 在Update 中修改角度持续旋转 Vecto

    2023年04月16日
    浏览(41)
  • Unity读书系列《Unity3D游戏开发》——脚本(一)

    脚本在Unity的重要程度不用多说,她是大部分软件的核心组件。 我们将在此篇文章学习脚本模版及其拓展、脚本的生命周期、脚本的执行顺序、脚本序列化,下一篇为脚本编译与调试。 如下图我们可以在Project视图右键进行脚本创建,除了C#脚本,还有两类脚本;Testing用来做

    2024年04月28日
    浏览(34)
  • Unity3D教程:抓取物件脚本、变数、名称

    游戏中相当常使用的功能GetComponent,经常用来Get(取得)物件上的Component(组件)资讯,若没有取得组件会回传null值。 gameObject . GetComponent ( “ScriptName” ); 如果发现要抓取GetComponent上的值为大写可能就要注意一下原本的变数是否为小写如图1所示: TextMesh 是3D Text上原本就包含的

    2024年02月15日
    浏览(28)
  • Unity3d Application中的所有目录以及含义

    本工程Asset的完整路径,测试输出Log:dataPath:E:/game_all/GameClient/Assets 本地可写区目录,测试输出Log:persistentDataPath:C:/Users/zhang/AppData/LocalLow/DefaultCompany/GameClient 本工程Asset/StreamingAssets目录,测试输出Log:streamingAssetsPath:E:/game_all/GameClient/Assets/StreamingAssets 本地可写区临时缓存目录

    2024年02月12日
    浏览(46)
  • Unity3D使用C#脚本修改TextMeshPro的内容(以显示系统时间为例)

    在网上找了很多都没有涉及到这个TextMeshPro内容修改,踩了很多坑,记录一下 特别是using TMPro; public TextMeshProUGUI Text; GetComponent();

    2024年02月11日
    浏览(27)
  • Unity3D中的C#协程(概念、使用方法、底层原理)

             Unity3D 中的协程是针对 Unity3D 框架和 C# 编程语言定制的 ,具有便捷的使用方式和良好的效率。其他语言Python、Lua等也支持协程,但是底层实现的细节可能不同。在 Unity3D 引擎中, 协程被 Unity3D 引擎的主循环所驱动 。         协程(Coroutine)是一种编程概念

    2024年02月08日
    浏览(38)
  • 我的框架-Unity3d中的用户数据储存模块UserDB

    前言:         我们在开发一些小游戏的时候,不可能将所有的数据都上传到服务器里去储存,有很多数据是需要储存到用户本地的。比如一些简单的用户设置,一些只需要打开一次的用户提示记录等等。当所需储存的数据比较少的时候,我们可以直接用 PlayerPrefs.SetString 直

    2023年04月14日
    浏览(28)
  • ARM 在Unity3D 中的美术优化解决方案 5.光照

    (注意:虽然我们选择了渐进 CPU 光照贴图,但我们鼓励你试用渐进 GPU 光照贴图并进行性能分析。根据系统 GPU 的不同,性能可能会有所差异。) Unity 引擎提供了三个生成光照贴图的选项 - Enlighten、Progressive CPU lightmapper 和 Progressive GPU lightmapper。在本项目中,我们选择使用渐

    2024年02月06日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包