给游戏物体添加tag值,获取tag
gameObject
.tag
gameObject
.tag="Player"
(1) gameObject.GetCompenent()(2) gameObject.transform(3) transform
GameObject:游戏对象类
两种获取游戏对象的方式
(1) 通过名字获取:GameObject.Find(“”)(2) tag值来获取: GameObject.FindGameObjectWithTag(“”)
t1.position =
new Vector3(
2,
3,
4);
获取一个组件:游戏物体.GetComponent<组件名>()
脚本生命周期
【1】 Awake: 加载的时候调用【2】 OnEnable: 激活的时候调用【3】 Start: 脚本开始运行的时候调用【4】 Update: 每帧都调用【5】 LateUpdate: Update执行结束之后调用【6】 OnDisable: 脚本不激活的时候调用【7】 OnDestory: 脚本销毁的时候调用
Time.delteTime: 上一次LateUpdate结束到这次Update开始的时间间隔
监听键盘的输入
监听鼠标的输入
字母数字小数字键盘鼠标
KeyCode.WKeyCode.Alpha10:KeyCode.Keypad00:左键KeyCode.AKeyCode.Alpha21:KeyCode.Keypad11:右键KeyCode.SKeyCode.Alpha32:KeyCode.Keypad22:中键……………………
小数字键盘为: KeyCode.Keypad1
上下左右键为KeyCode.UpArrow/DownArrow/LeftArrow/RightArrow
获取水平方向跟竖直方向的虚拟轴偏移量
float vertical = Input.GetAxis(
"Vertical");
float horizontal = Input.GetAxis(
"Horizontal");
刚体组件
RigidBody:刚体组件,用来模仿现实世界的物理效果(参数:质量,空气阻力,角阻力,约束(位置跟旋转))
给刚体组件设置一个速度:velocity
施加爆炸力作用:
Rigidbody对象
.AddExplosionForce(force,position,radius)
预设体
生成预设体:将场景的游戏物体拖拽到Asset当中即生成预设体
根据预设体生成游戏对象:
GameObject
.Instantiate(prefab,position,rotattion) Quaternion
.identity:旋转角度都为
0
碰撞事件发生条件:
两个物体必须要有碰撞器至少其中要有一个刚体组件两个物体要有相对位移
void
OnCollisionEnter(Collision other){
print("OnCollisionEnter");
}
void
OnCollisionStay(Collision other){
print("OnCollisionStay");
}
void
OnCollisionExit(Collision other){
print("OnCollisionExit");
}
触发器
触发事件:触发事件也是在触发的过程当中回调某些函数
发生条件:
两个物体必须有碰撞器,至少其中一个为触发器(勾选上IsTrigger)要有刚体组件相对位移
void
OnTriggerEnter(Collider other){
print("OnTriggerEnter");
}
void
OnTriggerStay(Collider other){
print("OnTriggerStay");
}
void
OnTriggerExit(Collider other){
print("OnTriggerExit");
}
实现物体位移、旋转的两种方式:
float vertical = Input.GetAxis(
"Vertical");
float horizontal = Input.GetAxis(
"Horizontal");
transform.Translate(Vector3.forward*speed*vertical*Time.deltaTime);
transform.position +=Vector3(x,y,z);
transform.Rotate(Vector3.up*rotateSpeed*horizontal*Time.deltaTime);
限制游戏物体的坐标范围
例:x轴[-4.5,4.5] Y[-4.5,4.3]
Vector3 tempPos = transform
.position
tempPos
.x = Mathf
.Clamp(tempPos
.x,-
4.5f,
4.5f)
tempPos
.y = Mathf
.Clamp(tempPos
.y,-
4.5f,
3.1f)
transform
.position = tempPos
销毁对象
Destroy(this.gameObject);
音频组件:AudioSource
AudioSource shootAS = gameObject
.GetComponent<AudioSource>()
//播放
shootAS
.Play()
UI界面
//屏幕宽度:Screen
.width
//屏幕高度:Screen
.height
//在屏幕显示的区域:
Rect scoreRect = new Rect(
x,
y,width,height)
//文本
GUI
.Label(Rect,String)
GUI
.Label(Rect,String,GUIStyle)
//文本样式
GUIStyle textStyle = new GUIStyle()
textStyle
.normal.textColor = Color
.white
textStyle
.fontSize =
25
textStyle
.alignment = TextAnchor
.MiddleCenter
获取子物体的父物体对象
子物体
.tansform.parent.gameObject
获得父物体的子物体对象
父物体
.transform.FindChild(
"子物体name");
Unity UI控件
ReStartBtn.onClick.AddListener(ReStartBtnClickListener);
public void ReStartBtnClickListener(){
SceneManager.LoadScene(
0);
}