UnityAPI.Transform变换(Yanlz+Unity+API+Transform+)

UnityAPI.Transform变换

版本

作者

参与者

完成日期

备注

UnityAPI_Transform_V01_1.0

严立钻

 

2018.08.21

 

 

 

 

 

 

#《UnityAPI.Transform变换》发布说明:

++++“UnityAPI.Transform变换”是对UnityAPITransform类的剖析和拓展;

#Transform变换

#Transform变换

#Transform变换

++++A、Description描述

++++B、Variables变量

++++C、Public Function共有函数

++++D、Message消息

#A、Description描述

#A、Description描述

++A、Description描述

++++立钻哥哥:对象的位置、旋转和缩放

++++场景中的每一个对象都有一个Transform

--用于储存并操控物体的位置、旋转和缩放;

--每一个Transform可以有一个父级,允许分层次应用位置、旋转和缩放;

--可以在Hierarchy面板查看层次关系;

--他们也支持计数器(Enumerator),因此可以使用循环遍历子对象;

using UnityEngine;

using System.Collections;

 

public class MyTransformClass : MonoBehaviour{

    void MyExample(){

        foreach(Transform child in transform){

            child.position += Vector3.up * 10.0F;

        }

 

    }

 

}    //立钻哥哥:public class MyTransformClass:MonoBehaviour{}

 

namespace UnityEngine{

    public class Transform : Component, IEnumerable{

        ... ...

    }    //立钻哥哥:public class Transform:Component,IEnumerable{}

 

}    //立钻哥哥:namespace UnityEngine{}

 

 

 

 

 

 

 

 

#B、Variables变量

#B、Variables变量

++B、Variables变量

++++B.1、childCount 该变换的子对象数量

++++B.2、eulerAngles 此旋转作为欧拉角度

++++B.3、forward 向前

++++B.4、hasChanged 是否被改变

++++B.5、localEulerAngles 局部欧拉角

++++B.6、localPosition 相对于父级的变换的位置

++++B.7、localRotation 局部旋转

++++B.8、localScale 相对于父级变换的缩放

++++B.9、localToWorldMatrix 局部转世界矩阵

++++B.10、lossyScale 有损缩放

++++B.11、parent 该变换的父对象

++++B.12、position 在世界空间坐标transform的位置

++++B.13、right 向右

++++B.14、root 返回最高层级的变换

++++B.15、rotation 旋转角度

++++B.16、up 向上

++++B.17、worldToLocalMatrix 世界转局部矩阵

##B.1、childCount 该变换的子对象数量

##B.1、childCount 该变换的子对象数量

++B.1、childCount 该变换的子对象数量

++++立钻哥哥:Transform.childCount子对象数

int childCount;

++Description描述

++++立钻哥哥:该变换的子对象数量

using UnityEngine;

using System.Collections;

 

public class MyTransformClass : MonoBehaviour{

    void MyExample(){

        print(transform.childCount);

    }

 

}    //立钻哥哥:public class MyTransformClass:MonoBehaviour{}

##B.2、eulerAngles 此旋转作为欧拉角度

##B.2、eulerAngles 此旋转作为欧拉角度

++B.2、eulerAngles 此旋转作为欧拉角度

++++立钻哥哥:Transform.eulerAngles 欧拉角

Vector3 eulerAngles;

++Description描述

++++立钻哥哥:此旋转作为欧拉角度

++++x、y、z角代表z轴旋转z度,绕x轴旋转x度,绕y轴旋转y度(这个顺序);

++++仅使用这个变量读取和设置角度为绝对值;

--不要递增它们,当超过角度360度,它将错误;

--使用Transform.Rotate替代;

using UnityEngine;

using System.Collections;

 

public class MyTransformClass : MonoBehaviour{

    public float yRotation = 5.0F;

 

    void Update(){

        yRotation += Input.GetAxis(Horizontal);

        transform.eulerAngles = new Vector3(10, yRotation, 0);

    }

 

    void MyExample(){

        print(transform.eulerAngles.x);

        print(transform.eulerAngles.y);

        print(transform.eulerAngles.z);

    }

 

}    //立钻哥哥:public class MyTransformClass:MonoBehaviour{}

++++不要分别设置欧拉角其中一个轴(例如:eulerAngles.x=10;),因为这将导致偏移和不希望的旋转;

--当设置它们一个新的值时,要同时设置全部(transform.eulerAngles = new Vector3(10, 5.0f, 0););

--Unity从存储在transform.localRotation的旋转自动转换角度;

##B.3、forward 向前

##B.3、forward 向前

++B.3、forward 向前

++++立钻哥哥:Transform.forward 向前

Vector3 forward;

 

++Description描述

++++立钻哥哥:在世界空间坐标,变换的蓝色轴(也就是Z轴)

using UnityEngine;

using System.Collections;

 

public class MyTransformClass : MonoBehaviour{

    void MyExample(){

        rigidbody.velocity = transform.forward * 10;

    }

 

}    //立钻哥哥:public class MyTransformClass:MonoBeahaviour{}

 

using UnityEngine;

using System.Collections;

 

public class MyTransformClass : MonoBehaviour{

    public float angleBetween = 0.0F;

    public Transform target;

 

    void Update(){

        Vector3 targetDir = target.position - transform.position;

        angleBetween = Vector3.Angle(transform.forward, targetDir);

    }

 

}    //立钻哥哥:public class MyTransformClass:MonoBehaviour{}

##B.4、hasChanged 是否被改变

##B.4、hasChanged 是否被改变

++B.4、hasChanged 是否被改变

++++立钻哥哥:Transform.hasChanged 是否被改变

bool hasChanged;

 

++Description描述

++++立钻哥哥:此变换自从上次标识是否被设置为false了

++++对变换的任何改变会导致矩阵的重新计算:任意调节它的位置、旋转或缩放;

--请注意此操作,是否在设置此标识之前新旧的值不同,也将不会实际检查;

--因此,对于实例化,transform.position将总是设置此变换的hasChanged,无论是否有实际的变化;

using UnityEngine;

using System.Collections;

 

public class MyTransformClass : MonoBehaviour{

    void OnUpdate(){

        if(transform.hasChanged){

            print(立钻哥哥:The transform has changed!);

            transform.hasChanged = false;

        }

    }

 

}    //立钻哥哥:public class MyTransformClass:MonoBehaviour{}

 

 

 

 

 

##B.5、localEulerAngles 局部欧拉角

##B.5、localEulerAngles 局部欧拉角

++B.5、localEulerAngles 局部欧拉角

++++立钻哥哥:Transform.localEulerAngles 局部欧拉角

Vector3 localEulerAngles;

++Description描述

++++立钻哥哥:旋转作为欧拉角度,相对于父级的变换旋转

++++x、y、z角代表绕z轴旋转z度,绕x轴旋转x度,绕y轴旋转y度(这个顺序);

++++仅使用这个变量读取和设置角度为绝对值;

--不要递增它们,当超过角度360度,它将错误;

--使用Transform.Rotate替代;

using UnityEngine;

using System.Collections;

 

public class MyTransformClass : MonoBeahaviour{

    void MyExample(){

        print(transform.localEulerAngles.x);

        print(transform.localEulerAngles.y);

        print(transform.localEulerAngles.z);

    }

 

}    //立钻哥哥:public class MyTransformClass:MonoBehaviour{}

++++Unity从存储在transform.localrotation的旋转自动转换角度;

##B.6、localPosition 相对于父级的变换的位置

##B.6、localPosition 相对于父级的变换的位置

++B.6、localPosition 相对于父级的变换的位置

++++立钻哥哥:Transform.localPosition 局部位置

Vector3 localPosition;

++Description描述

++++立钻哥哥:现对于父级的变换的位置

++++如果该变换没有父级,那么等同于Transform.position;

using UnityEngine;

using System.Collections;

 

public class MyTransformClass : MonoBehaviour{

    void MyExample(){

        transform.localPosition = new Vector3(0, 0, 0);

        print(transform.localPosition.y);

    }

 

}    //立钻哥哥:public class MyTransformClass:MonoBehaviour{}

++++注意当计算世界的位置时,父级变换的世界旋转和缩放被应用到自身的位置;

--意思是说:Transform.position的1个单位是1个单位,Transform.localPositon的1个单位将由所有父级的缩放获得缩放,简单来说自身位置的1单位将受所有上级的缩放影响

##B.7、localRotation 局部旋转

##B.7、localRotation 局部旋转

++B.7、localRotation 局部旋转

++++立钻哥哥:Transform.localPosition 局部旋转

Quaternion localRotation;

++Description描述

++++立钻哥哥:该变换的旋转角度相当于父级变换的旋转角度

++++Unity作为四元数存旋转角度;

--要旋转一个物体,使用Transform.Rotate,使用Transform.localEulerAngles为设置作为欧拉角的旋转角度;

using UnityEngine;

using System.Collections;

 

public class MyTransformClass : MonoBehaviour{

    void MyExample(){

        transform.localRotation = Quaternion.identity;

    }

 

}    //立钻哥哥:public class MyTransformClass:MonoBehaviour{}

##B.8、localScale 相对于父级变换的缩放

##B.8、localScale 相对于父级变换的缩放

++B.8、localScale 相对于父级变换的缩放

++++立钻哥哥:Transform.localScale 局部缩放

Vector3 localScale;

++Description描述

++++立钻哥哥:相对于父级变换的缩放

using UnityEngine;

using System.Collections;

 

public class MyTransformClass : MonoBehaviour{

    void MyExample(){

        transform.localScale += new Vector3(0.1F, 0, 0);

    }

 

}    //立钻哥哥:public class MyTransformClass:MonoBehaviour{}

 

 

 

 

 

##B.9、localToWorldMatrix 局部转世界矩阵

##B.9、localToWorldMatrix 局部转世界矩阵

++B.9、localToWorldMatrix 局部转世界矩阵

++++立钻哥哥:Transform.localToWorldMatrix 局部转世界矩阵

Matrix4x4 localToWorldMatrix;

++Description描述

++++立钻哥哥:变换点的矩阵从局部坐标到世界坐标(只读)

++++如果不熟悉使用矩阵为坐标转换,使用Transform.TransformPoint代替;

++++重要:如果设置shader参数,必须使用Renderer.localToWorldMaxtrix替代;

##B.10、lossyScale 有损缩放

##B.10、lossyScale 有损缩放

++B.10、lossyScale 有损缩放

++++立钻哥哥:Transform.lossyScale 有损缩放

Vector3 lossyScale;

++Description描述

++++立钻哥哥:该对象的整体缩放(只读)

++++请注意:如果有一个带有缩放的父变换和有任意旋转的子变换,此缩放将有偏差;

--因此缩放不能正确的表示在3组件的向量,而是一个3x3矩阵;

--这样表示工作十分不方便,lossyScale是个和方便的属性,它尽量匹配实际世界缩放,如果物体不是有偏差的,这个值将是完全正确的,如果物体包含偏差,这个值也不会有很大的不同;

using UnityEngine;

using System.Collections;

 

public class MyTransformClass : MonoBehaviour{

    void MyExample(){

        print(transform.lossyScale);

    }

 

}    //立钻哥哥:public class MyTransformClass:MonoBehaviour{}

##B.11、parent 该变换的父对象

##B.11、parent 该变换的父对象

 

++立钻哥哥推荐的拓展学习链接(Link_Url)

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

++++Unity5.x用户手册https://blog.csdn.net/VRunSoftYanlz/article/details/81712741

++++Unity面试题ABChttps://blog.csdn.net/vrunsoftyanlz/article/details/78630687

++++Unity面试题Dhttps://blog.csdn.net/VRunSoftYanlz/article/details/78630838

++++Unity面试题Ehttps://blog.csdn.net/vrunsoftyanlz/article/details/78630913

++++Unity面试题Fhttps://blog.csdn.net/VRunSoftYanlz/article/details/78630945

++++Unity知识点0001https://blog.csdn.net/vrunsoftyanlz/article/details/80302012

++++Unity知识点0008https://blog.csdn.net/VRunSoftYanlz/article/details/81153606

++++Unity引擎基础https://blog.csdn.net/vrunsoftyanlz/article/details/78881685

++++Unity面向组件开发https://blog.csdn.net/vrunsoftyanlz/article/details/78881752

++++Unity物理系统https://blog.csdn.net/vrunsoftyanlz/article/details/78881879

++++Unity2D平台开发https://blog.csdn.net/vrunsoftyanlz/article/details/78882034

++++UGUI基础https://blog.csdn.net/vrunsoftyanlz/article/details/78884693

++++UGUI进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78884882

++++UGUI综合https://blog.csdn.net/vrunsoftyanlz/article/details/78885013

++++Unity动画系统基础https://blog.csdn.net/vrunsoftyanlz/article/details/78886068

++++Unity动画系统进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78886198

++++Navigation导航系统https://blog.csdn.net/vrunsoftyanlz/article/details/78886281

++++Unity特效渲染https://blog.csdn.net/vrunsoftyanlz/article/details/78886403

++++Unity数据存储https://blog.csdn.net/vrunsoftyanlz/article/details/79251273

++++Unity中Sqlite数据库https://blog.csdn.net/vrunsoftyanlz/article/details/79254162

++++WWW类和协程https://blog.csdn.net/vrunsoftyanlz/article/details/79254559

++++Unity网络https://blog.csdn.net/vrunsoftyanlz/article/details/79254902

++++C#事件https://blog.csdn.net/vrunsoftyanlz/article/details/78631267

++++C#委托https://blog.csdn.net/vrunsoftyanlz/article/details/78631183

++++C#集合https://blog.csdn.net/vrunsoftyanlz/article/details/78631175

++++C#泛型https://blog.csdn.net/vrunsoftyanlz/article/details/78631141

++++C#接口https://blog.csdn.net/vrunsoftyanlz/article/details/78631122

++++C#静态类https://blog.csdn.net/vrunsoftyanlz/article/details/78630979

++++C#中System.String类https://blog.csdn.net/vrunsoftyanlz/article/details/78630945

++++C#数据类型https://blog.csdn.net/vrunsoftyanlz/article/details/78630913

++++Unity3D默认的快捷键https://blog.csdn.net/vrunsoftyanlz/article/details/78630838

++++游戏相关缩写https://blog.csdn.net/vrunsoftyanlz/article/details/78630687

++++设计模式简单整理https://blog.csdn.net/vrunsoftyanlz/article/details/79839641

++++专题:设计模式(精华篇)https://blog.csdn.net/VRunSoftYanlz/article/details/81322678

++++U3D小项目参考https://blog.csdn.net/vrunsoftyanlz/article/details/80141811

++++UML类图https://blog.csdn.net/vrunsoftyanlz/article/details/80289461

++++U3D_Shader编程(第一篇:快速入门篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372071

++++U3D_Shader编程(第二篇:基础夯实篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372628

++++框架知识点https://blog.csdn.net/VRunSoftYanlz/article/details/80862879

++++游戏框架(UI框架夯实篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80781140

++++游戏框架(初探篇)https://blog.csdn.net/VRunSoftYanlz/article/details/80630325

++++Lua快速入门篇(基础概述)https://blog.csdn.net/VRunSoftYanlz/article/details/81041359

++++Lua快速入门篇(XLua教程):https://blog.csdn.net/VRunSoftYanlz/article/details/81141502

++++Lua快速入门篇(Xlua拓展):https://blog.csdn.net/VRunSoftYanlz/article/details/81173818

++++UnityAPI.Rigidbody刚体https://blog.csdn.net/VRunSoftYanlz/article/details/81784053

++++UnityAPI.Material材质https://blog.csdn.net/VRunSoftYanlz/article/details/81814303

++++UnityAPI.Android安卓https://blog.csdn.net/VRunSoftYanlz/article/details/81843193

++++UnityAPI.AndroidJNI安卓JNIhttps://blog.csdn.net/VRunSoftYanlz/article/details/81879345

++++UnityAPI.Transform变换https://blog.csdn.net/VRunSoftYanlz/article/details/81916293

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

 

--_--VRunSoft:lovezuanzuan--_--

猜你喜欢

转载自blog.csdn.net/VRunSoftYanlz/article/details/81916293
今日推荐