生成的脚本中,生成的Start()方法,进行游戏初始化,只执行一次。Update()方法,会重复执行,可以监听用户动作或者游戏状态。
打印Log的两种方法:1.print(), 2.Debug.log();
根据名称获取游戏对象: GameObject.Find(“objectName”)
可以直接通过tansform.find("")获取本对象下的子对象。再通过GetComponent获取对象下的属性
获取游戏对象中的游戏属性:GameObject.Find(“Image”).GetComponent();(需要先引入UI包,using UnityEngine.UI;)
刚体间碰撞检测:
//必须一个游戏对象属于刚体才能发生碰撞,参数是碰撞到的刚体
//刚体和刚体间
void OnCollisionEnter2D(Collision2D coll)
{
print("刚体间碰撞:"+coll.gameObject.name);
}
- 刚体和物体间碰撞检测,标示不同物体用Tag
//必须一个游戏对象属于刚体才能发生碰撞,碰撞器属性一定是 isTrigger 才能发生碰撞
//刚体和物体碰撞
void OnTriggerEnter2D(Collider2D c)
{
if (c.tag=="aaa")
{
}
print("刚体和游戏物体aaa碰撞:"+c.gameObject.name);
}
- 获取用户键盘输入(例如按下A键):
Input.GetKey(KeyCode.A) : GetKey:按下不放则一直触发
Input.GetKeyDown() : 键盘按下的那一次才会触发。
- 代码控制Animator中参数的值
//定义一个Animator
private Animator animator;
void Start(){
//获取Animator
animator = GetComponent<Animator>();
}
void Update(){
//修改参数的值
animator.SetBool("name",true);
}
- 检测当前动画状态,判断动画是否完成
//获取当前动画状态,用于判断动画是否结束
AnimatorStateInfo info = animator.GetCurrentAnimatorStateInfo(0);
//设置标志位
if (info.normalizedTime > 1.0f && info.IsName(stateName))
{
animator.SetBool(parName, newState);
}
- 销毁对象
Destroy(this.gameObject);
- 生成一个对象
可用于使用预制体发射子弹
GameObject.Instantiate(bullet, transform.position, Quaternion.identity);
- 屏幕坐标转化成世界坐标
Vector3 tempPosition = Camera.main.ScreenToWorldPoint(new Vector2(Screen.width, Screen.height));
- 移动游戏对象
//将对象在坐标系中以某个方向移动
transform.Translate(Vector3.up * speed * Time.deltaTime);
//对象以某个速度运动。包括物理效果。
rigidbody2d.velocity = new Vector2(0,speed);
- 给刚体添加力
rigidbody2d.AddForce(new Vector2(100, 0)); //向右施加力
持续更新。。。