Unity整理内容方便初学者查看(第一篇_初识U3D及Transform)

来源:互联网 发布:苹果手机扫描软件 编辑:程序博客网 时间:2024/06/05 02:24
********unity*************


一、世界坐标 —— Global
       物体坐标 —— Local 
    
二、向量


A点----->B点 [A到B]计算等于: B-A


gameObject.name 是当前(挂载脚本的)游戏物体的名字


GameObject是类名


GameObject.Find("游戏名"); 
通过游戏名,找到该游戏物体,返回一个GameObject对象


GameObject.FindGameObjectsWithTag("Tag");

通过Tag值,找出所有属于Tag类的游戏物体,返回一个GameObject对象数组
因为是静态方法,所以找出的游戏物体顺序是反的.


GameObject.FindWithTag
GameObject.FindGameObjectWithTag("Tag");

通过Tag值,找到该游戏物体,返回一个GameObject对象


gameObject.SetActive (false);
通过这个命令设置物体是否处于活动状态


Componen 组件


Unity组件


Transform代表游戏位置的组件 


Gatcomponent<Class Component/游戏组件名>() 
通过这个方法可以获取当前游戏的某个组件


B.transform.Setparent("A.Transform");
这个方法是把B设置成A的子物体.


A.transform.Position 
表示A物体在世界坐标系中transform的位置 


transform.Translate(位置变量); 

通过这个方法改变游戏物体的位置


transform.rotation;
表示当前游戏物体的旋转数,可以赋给另一个物体,让他们保持一致的旋转


transform.localPosition
表示当前游戏物体相对父物体坐标中的位置


transform.eulerAngles
欧拉角,旋转的角度


tansform.eulerAngles = new Vector(X,Y,Z);

改变任意X,Y,Z的一个或某个值时,该游戏物体会直接沿所改变的轴固定多少度
如:transform.eulerAngles = new Vector3 (0, 45, 0);表示将当前游戏物体沿Y轴旋转并固定45度


如果要转动多少度,则用:
transform.Rotate(Vector3变值);
表示按给定的欧拉角进行旋转


transform.Ratate(Vector3.Up*角度); 表示沿Y轴旋转多少度;


transform.RatateAround (围绕点,旋转轴,旋转度数);

围绕点: Tansform.position
旋转轴: Vector3
旋转度: float/int 值
围绕某个点,按照某个轴旋转多少度


A--->B (A移向B)
A.transform.Translate((B.transform.position-A.tranform.position) * Time.deltaTime)


A.transform.LookAt(B.transform);

A的正方向看向B,根据B的变动而变动


Time.time 从游戏开始到当前的时间,是个只读属性


Time.deltaTime 上一帧结束到当前帧所用的时间


Time.fixedDelataTime 固定帧速率,记录每一帧所用的时间


Time.timeScale 表示时间缩放,也就是单位时间流逝


Mathf 数学计算


Mathf.Lerp(a,b,t) 
表示线性差值,计算方式是: (b-a)*t+a 


Mathf.Clamp(a,min,max);
用来限制a数的大小:
当 min<a<max ---->取a
当 max < a   ---->取max
当 a < min   ---->取min


标准化向量:方向不变,长度为1

Vector3.Normalize(V的Vector3)
得到某一个向量(V)的标准化向量,如:
Vector3 a = Vector3.Normalize(A.transform.position);
这样可以得到A的标准化向量a


Vector3 A = new Vector3(2, 3, 4);
A.Normalize();
对A自己执行标准化向量;


Vector3 a = A.normalized;
获得A的标准化向量的值,并赋给新定义的向量a


Vector3.Lerp 两个向量之间的线性差值,可以用来做位移(但不常用)

A.transform.position = Vector3.Lerp(A.transform.position,B.transform.position,0.5f * Time.deltaTime)

A移向B


Quaternion 四维数 用来做旋转的


Quaternion.identity 无旋转角度


Quaternion.LookRataion(朝向A/forWard,朝向B/Up)
游戏物体的正面朝A/forWarf 顶部朝B/Up


游戏物体生成:
GameObject g =Instantiate(预设体GameObject,生成位置Vector/Position,朝向Quaternion)


Destroy(g,3f); 3秒后,销毁对象g
2 0
原创粉丝点击