上up下down左left右right
移动(需要建立全局变量 最好使用 public float speed=1 使用public可以在u3d页面手动调节 speed的值,调控位置的时候要使用transform)
transform.Translate(Vector3.right*speed*Time.deltaTime);
要调试UI内添加的控件时要引用
using UnityEngine.UI;
通过游戏物体的名称进行获取(GameObject 大写为获取游戏对象 小写为当前游戏对象)
var r = GameObject.Find("renwu");
获取通过UI添加的物体时 (也可以用来获取组件)
var text = GameObject.Find("text").GetComponent<Text>();
刚体和游戏物体碰撞 碰撞器属性不是 is tigger 才能发生碰撞
void OnCollisionEnter2D(Collision2D coll)
{
print("撞了");
}
刚体和游戏物体碰撞 碰撞器属性必须是 is tigger 才能发生碰撞(c是被碰撞的对象)
void OntriggerEnter2D(Collider2D c)
{
print("撞了");
//销毁被碰撞的对象
Destroy(c.gameobject);
//销毁碰撞的对象
Destroy(this.gameobject);
}
动画制作
在image上添加组件 Animator
然后创建文件夹Aciton 创建一个控制器 Animator Controller
拖动控制器 到Animator组件的 Controller里面
选中要制作动画的image 点击菜单栏window Animation 右边点击create
拖动资源库里面的几张图片进去 然后更改变换速度 保存即可
动画切换
点击image的控制器
点击上方的Parameters 点击加号创建一个bool的变量
然后在主动画上右键 Make Transition链接到副动画上
点击链接线写上条件 true或false的时候转换动画
点击链接线会发现有个Has Exit Time选项 默认勾选为有动画过度(建议取消勾选)
副动画同上
按键控制
当按下A键的时候
if (Input.GetKey(KeyCode.A))
{
transform.Translate(Vector3.left * speed * Time.deltaTime);
}
当按下J键的时候把XXX的XX变量设置为false (要先去获取XXX组件,赋值之后才能直接使用XXX)
if (Input.GetKey(KeyCode.J))
{
XXX.SetBool("XX", false);
}
动画播放完毕检测(XXX动画名称,判断XXX动画播放次数如果大于1就咋咋咋咋咋)
AnimatorStateInfo info = anima.GetCurrentAnimatorStateInfo(0);
if (info.normalizedTime > 1 && info.IsName("XXX"))
{
XXXXXXXXXXXXXXXXXX
}