ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Unity基础知识、Transform类

2022-01-05 19:38:47  阅读:248  来源: 互联网

标签:对象 Vector3 transform Transform Unity position rotation 基础知识


Transform类

1)本类中的属性

-parent:

获取当前游戏对象的父对象的Transform

Transform fourTrans = transform.parent;

transform.SetParent (Cube):  将挂脚本的当前对象设为Cube的父物体

transform.SetParent (null):  取消父物体,解除父子关系!

-root:

获取当前游戏对象的根对象的Transform

Transform  rootTrans  =  transform.root;

print("获444的祖先的名字" + rootTrans.name);

-localPosition:

不带local是世界坐标系中的位置,local相对于父物体的位置,无父,就是世界

-GetInstanceID:

获取当前游戏对象的id (唯一的)

print("实例id" + transform.GetInstanceID());

-childCount:

获取子对象的个数(然后遍历)

int count = transform.childCount;

print("获取111下面子对象的个数"+count);

for (int i = 0; i < count; i++)

2)本类中的方法:

GetChild( int index ):获取指定索引值的Game0bject,

IsChild0f () :判断是否是指定对象的子对象

Find():查找对象

Translate() :按指定方向和位置进行移动,默认是自身坐标系

Rotate() :按指定角度进行旋转

LookAt() :使当前对象朝向(看向)目标位

位移Translate   

上下Y轴 up down   

左右X轴 left down   

前后Z轴 forward back

示例:右vector3.right (100)  前v3.forward(001)

MoveToward 匀速移动    (当前的位置,目标位置,最大移动距离)

transform.position = Vector3.MoveToWard(transform.position,Cube.position,1)

Vector3.Lerp 插值移动 0.1 ,插值移动,速度越来越慢

Vector3.Lerp(transform.position,Cube.position,2)

旋转 Rotate

transform.Rotate(Vector3.up * Time.deltaTime * speed);

transform.Rotate(Time.deltaTime * speed,0,0);//或者可以这么写等于(x,0,0,)

Transform.rotation = Quaternion.AngleAxis(45.Vector3.up)

Transform.rotation = Quaternion.Euler(45,45,0);

欧拉角旋转,x转到90,yz会产生万向节死锁:

Transform.eulerAngles = new Vector(45,45,0);

物体围绕中心物体转动:(Xin就是中心物体):

transform.RotateAround(Xin.transform.position,Xin.transform.up, 5);

Slerp 插值旋转 了解即可 计算较为复杂 求得插值改变自身rotation

transform.rotation = Quaternion.Slerp(transform.rotation,Cube.rotation,0.5f);

LookRotation  指向旋转 需要的参数是方向

transform.Rotation = Quaternion.LookRotation(Spere.position-transform. position);

我看向球,所以方向是球-我

坐标系的转换  

Vector3 v = newVector3(1,5,8);

世界坐标系:Unity中世界坐标为原点

自身坐标系:自身所在的点为原点,和世界坐标无关

自身转世界(位置)  transform. TransformPoint(v) ;

自身转世界(方向)  transform. TransformDirection(v) ;

自身转世界(向量)  transform. TransformVector(v) ;

世界转自身:

transform.InverseTransformPoint (v) ;

transform.InverseTransformDirection(v) ;

transform.InverseTransformVector(v) ;

标签:对象,Vector3,transform,Transform,Unity,position,rotation,基础知识
来源: https://blog.csdn.net/xiaobaihao0311/article/details/122302633

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有