unity学习,希望我的博客能给喜欢unity的朋友带来帮助。
学习了一周了,对有些知识点都感到混乱,来总结梳理一下吧。
一:transform对象
属性:
1、transform.position(位移)
举例:移动物体到
transfrom.position=Vertor3(1,1,0);
2、
transform.rotaition(旋转)
举例:旋转物体,重设坐标
transform.rotaition
= Quaternion.identity;
3、transform.scale(缩放)
举例:放大(缩小)物体
transform.localScale+(-)=Vertor(1,0,0);
方法:
1、transform.Translate()
像某方向移动物体多少距离
举例:transform.Translate(new Vertor(0,1,1));//括号内为三维向量
transform.Translate(Vector3.forward
);//也可为某一方向
2、transform.Rotate()
像某方向旋转物体
举例:
transform.Rotate (new Vector3(0,10,0));
同位移一样,括号内的参数可为三维向量也可为某一方向
3、transform.RotateAround()
围绕旋转
举例:地球围着太阳转
earth.transform.RotateAround (sun.transform.position, Vector3.up, 1);
二、Input(鼠标、键盘、自定义)
键盘:
GetKey : 当通过名称指定的按键被用户按住时返回true
GetKeyDown : 当用户按下指定名称的按键时的那一帧返回true。
GetKeyUp : 在用户释放给定名字的按键的那一帧返回true。
GetAxis(“Horizontal")和GetAxis(“Verical”) :
用方向键或WASD键来模拟-1到1的平滑输入
鼠标:
GetButton : 根据按钮名称返回true当对应的虚拟按钮被按住时。
GetButtonDown :在给定名称的虚拟按钮被按下的那一帧返回true。
GetButtonUp : 在用户释放指定名称的虚拟按钮时返回true。
button值设定为 0对应左键 , 1对应右键 , 2对应中键。
用法都大致相同,以键盘为例:
Input.GetKey(" ");//括号中可以写up,down形式,也可以使用KeyCode.xx;(xx可以是键盘上的按键);
自定义:
Input.GetButton(" ");//括号内不能写0,1等数字,要写string类型。
三、gameObject类
GameObject是Unity场景里面所有实体的基类.
方法:
1、
creatPrimitive (创建对象)
GameObject.CreatePrimitive(PrimitiveType.Cube);
2、
Destory(销毁对象)
Destroy (gameObject);
3、
Find(查找,通过名称来查找)
GameObject go=GameObject.Find(“Player”);
4、FindGameObjectWithTag(查找,通过tag标签来获取查找对象)
GameObject go=GameObject..FindGameObjectWithTag (“Player”);
5、
GameObject.Instantiate(参数)
(克隆对象,
克隆原始物体并返回克隆物体。
括号内的参数分别为克隆对象,当前位置,旋转)
GameObject obj=(GameObject)Instantiate(cube);
四、Time类
属性:
deltaTime
说明:
方法Update(): 受当前渲染效率的影响,有时快有时慢,帧率会变化,Update被调用的时间间隔就发生变化,Time. deltaTime获得自上次Update一来经历的时间,只应该在Update()中使用deltaTime ,OnGUI、FiexedUpdate等里面不要用。
Random(随机的)
返回一个随机浮点数,在min(包含)和max(包含)之间。(只读)
Random.Range();小括号内默认为整数
五、Yield
Yield语句是一种特殊类型的Return(返回)语句,它可以确保函数在下一次被执行时,不是从头开始,而是从Yield语句处开始。
可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行。
举例:
- void Start () {
- print("Start开始");
- StartCoroutine(Do());
- print("Do调用后");
- }
- IEnumerator Do()
- {
- print("Do开始");
- yield return new WaitForSeconds(3.0f);
- print("暂停3秒后");
- }
消息传递函数:Message
SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的Script
BroadcastMessage ("函数名",参数,SendMessageOptions) //自身和子Object的Script
SendMessageUpwards ("函数名",参数,SendMessageOptions) //自身和父Object的Script
六、触发器(Trigger)和碰撞器(Collision)
触发器方法:
进入触发器:
OnTriggerEnter( Collider col)
退出触发器:
OnTriggerExit( Collider col )
逗留触发器:
OnTriggerStay( Collider col)
触碰器中判断的两种方法:
(1)if(col.gameObject.name=="Player")
{
}
(2)if(col.tog=="Player")
{
}
碰撞器方法:
进入碰撞器:
OnCollisionEnter( Collision col )
退出碰撞器:
OnCollisionExit( Collision col)
逗留碰撞器:
OnCollisionStay( Collision col)
碰撞器和触发器的区别:触发器必须勾选上IsTrigger属性,碰撞器不需要。