*注意:如果不是代码中的括号,代表是解释信息
这个是NGUI相关知识(不提供NGUI,可以自行在Unity资源商店购买【90dollar≈600+RMB】或者其他地方获取),只是想介绍一下transform和gameobject 但是多用点东西会更有印象
简单介绍完成界面:点击按钮让坦克发射子弹
建议:一个程序拥有多个脚本,拥有面向对象思维(如果在所有代码都写在一个脚本中,思维会很乱,不管你技术如何 都会有一定的乱,之后如果想要扩展什么的 也会很难;在一个大一点的工程中,写起来也会比较困难 所以,建议慢慢来 分多个脚本,慢慢拥有面向对象思维)
三个脚本:子弹、玩家、NGUI按钮
第一步:子弹脚本(Bullet 生成后让它一直往它的正前方移动,在指定时间中销毁 降低性能消耗)
脚本代码:void Start()
{
//这里我经常会写错,写成transform
//gameobject代表的是对象 而transform是组件(如果把组件删除了 脚本也自然无法执行了)
//发射子弹 总不会只发一颗 所以,销毁的是gameobject(对象)
Destroy(gameObject, 3.0f);
}
public float speed = 15f;
void Update()
{
//移动 方向 速度 差值
transform.Translate(Vector3.forward * speed * Time.deltaTime);
}
第二步:玩家脚本(生成子弹),也可以设置子弹实例化的位置,比如:不是在玩家中心点创建对象,而是在枪口的位置
代码:public void Fire()
{
//实例化对象 简单理解(创建一个物体)
// 指定路径 类型 路径加载对象
Instantiate(Resources.Load<GameObject>("Tank/Bullet"));
}
第三步:NGUI按钮脚本
1.先按流程创建一个图片集,图片集要放在当前Unity的Assets文件下(自己随便找个图片做成图片集 第三步是要选中图片,才可以进行第四步)
代码:public UIButton btn;
public playeObj tank;
void Start()
{
//实例化 也可以把函数改成静态,就不需要这一行代码了
playeObj p = new playeObj();
//按钮监听(就是点击按钮 做出反应)
// 添加事件委托 lambda表达式(委托里面包含
// 函数,运行函数逻辑)
btn.onClick.Add(new EventDelegate(() =>
{
//执行子弹发射效果
tank.Fire();
}));
}
最后会实现,点击一下按钮发射一颗子弹。