Unity6--缩放、旋转、欧拉角
来源:互联网 发布:马云开创淘宝 编辑:程序博客网 时间:2024/06/05 20:38
一、创建个TransformTest文件
publicGameObject obj1;
publicGameObject obj2;
publicGameObject obj3;
1.void Start () {
//1.,子类跟着父类走
//把物体2当做1的子类 -------以都相对于世界坐标中心为参考,
Debug.Log(obj1 .transform.position);
Debug.Log(obj2.transform.position);
//是与父物体为参考坐标系远点的,如果没有父物体,那么就使用世界坐标系
Debug.Log("obj1LocalPosition" + obj1.transform.localPosition);
Debug.Log("obj2LocalPosition:" + obj2.transform.localPosition);
//2.缩放
Debug.Log(obj1.transform.localScale);//父类
//1.父类Scale 为3,3,3子类为2,2,2,把子类拖出来,单独成一体,那么尺寸就会变成6,6,6;
// 2.父类为3,3,3 子类也改为3,3,3 单独拖出来就会变成9,9,9;
//3.改变父类的尺寸子类也会相对改变。
Debug.Log(obj2.transform.localScale);//子类
//2.1单独的全局缩放,本身的大小,父*子类的
Debug.Log(obj2.transform.lossyScale);//就会显示出单独拖出来时的尺寸,6,6,6
//3.旋转-----unity顺序zxy,都会绕着z轴旋转,z是父类
//四元数---记住这么使用 --把欧拉角转化成4元数
Quaternion q =Quaternion.identity; //默认不旋转
q.eulerAngles = newVector3(0, 30, 0);//欧拉角,后面括号对应的,绕着Y轴旋转30度
obj3.transform.rotation = q;
}
void Update () {-------------旋转
obj3.transform.Rotate(newVector3(0, 30, 0) * Time.deltaTime);//相当于每帧旋转30度--Time.deltaTime相当于1/60,会变慢。
}
二、欧拉角、四元数创建个EulerAndQuaternion文件:
//创建按钮,旋转物体--unity里对应Cube里含有Capsule那一组
//对比,为什么必能直接对欧拉角赋值
//欧拉角也叫万象解锁
void OnGUI() //创建的按钮程序
{
//"Q_X"是用四元数以自身坐标系进行旋转,避免直接用欧拉角--V_X绕着Z轴旋转
if(GUI.Button(newRect(20,20,100,80), "Q_X")) //四元数 //括号分别对应:x值,y值,按钮宽度,高度,20+80
{
Quaternion q = Quaternion.identity;
q.eulerAngles = newVector3(30, 0, 0);
transform.rotation = q *transform.rotation;
}
if (GUI.Button(newRect(20, 105, 100, 80), "Q_Y")) //105是上面的20+80+空隙5.可整齐排列
{
Quaternion q = Quaternion.identity;
q.eulerAngles = newVector3(0, 30, 0); //Y旋转
transform.rotation = q *transform.rotation;
}
if (GUI.Button(newRect(20, 190, 100, 80), "Q_Z"))
{
Quaternion q = Quaternion.identity;
q.eulerAngles = newVector3(0, 0, 30); //Z旋转
transform.rotation = q *transform.rotation;
}
//这个是直接赋值调用的欧拉角,直接用欧拉角--V_X绕着Z轴旋转
if (GUI.Button(newRect(125, 20, 100, 80), "V_X")) //125是上面的x轴20+100宽+缝隙得来的
{
transform.eulerAngles += newVector3(30, 0, 0);
}
if (GUI.Button(newRect(125, 105, 100, 80), "V_Y"))
{
transform.eulerAngles += newVector3(0, 30, 0);
}
if (GUI.Button(newRect(125, 190, 100, 80), "V_Z"))
{
transform.eulerAngles += newVector3(0, 0, 30);
}
}
- Unity6--缩放、旋转、欧拉角
- 旋转+缩放
- 缩放 旋转
- 图片旋转、缩放、反转
- 位图旋转和缩放
- 图片缩放 旋转
- 图像旋转及缩放
- cvGetQuadrangleSubPix 图像旋转缩放
- Direct 平移,旋转,缩放
- 图片旋转,缩放,切割
- OpenGL之旋转缩放
- 图片缩放旋转
- ios 图片缩放/旋转
- Opengl旋转-缩放
- Transform【缩放、平移、旋转】
- 旋转和缩放视图
- 图片 旋转,缩放,移动
- 图片缩放与旋转
- Hexo深度使用
- Error Curves
- Mapper配置之ResultMap详解
- 交错01串
- Excel 中多行时快速生成自增长序号
- Unity6--缩放、旋转、欧拉角
- Java基础——Servlet(四)
- 终端命令积累
- webservice
- AVD中应用程序的卸载
- spring bean的生命周期
- java的RandomAccessFile的使用详解
- gcc-4.8.0编译器安装手册
- SQL的group by用法,找出分组后某字段不完全一样的组别