尝试了解unity热更新时,总会看到ab包、Addressables、AssetBundle、xlua等关键字,但是没深入了解的话很难搞清楚这几个是啥关系。 今天我就尝试去缕一缕!
Invoke方法是Unity3D 中的一种委托机制。
现在看一下官网给出的API:
public void Invoke(string methodName, float time);
methodName 是方法名,time 是具体几秒
Invokes the method
methodName
in time seconds.
在具体事件以后调用这个方法
一、背景滚动实现方法
-
创建一个3d对象Quad,重命名为SimpleBackground,调整好大小(跟图片差不多大)
-
新建一个材质,设置shader为Unlit/Textu
slider.onValueChanged.AddListener
slider.onValueChanged.AddListener((float v) =>
{//v等价于slider.value
AudioTuning.Instance.SetMasterVolume(v);
});
AudioTuning:
- 通过对象名称(Find方法)
GameObject.Find("name")
- 通过标签获取单个游戏对象(FindWithTag方法)
GameObject.FindWithTag("Tag");
- 通过标签获取多个游戏对象(FindGameObjectsWithTags方法)
- 通过类型获取单个游戏对象(FindObjectOfType方法)
- 通过类型获取多个游戏对象(FindObjectsOfType方法)
https://www.bilibili.com/video/BV15W411976h
参考项目:新加的功能
1.怪物球自转
2.不同炮台只可在特定颜色,区域内建造。
3.未选中炮台不可建造
遇到的问题
炮弹打中敌人之后发现后方的一个怪会持续扣血直到死亡。初步猜测是碰撞触发了多次,后来暂停看的时候发现,子弹爆炸特效(在子弹销毁时触发) 在敌人死亡的时候会一下子刷出特别多。因此我判断是子弹打入敌人之后没有实时销毁。运行一测,果然是。最后在子弹脚本中,释放子弹爆炸特效的前方增加了销毁自身的代码。修复了bug。
https://www.bilibili.com/video/BV15W411976h
参考项目:新加的功能
1.怪物球自转
2.不同炮台只可在特定颜色,区域内建造。
3.未选中炮台不可建造
遇到的问题
炮弹打中敌人之后发现后方的一个怪会持续扣血直到死亡。初步猜测是碰撞触发了多次,后来暂停看的时候发现,子弹爆炸特效(在子弹销毁时触发) 在敌人死亡的时候会一下子刷出特别多。因此我判断是子弹打入敌人之后没有实时销毁。运行一测,果然是。最后在子弹脚本中,释放子弹爆炸特效的前方增加了销毁自身的代码。修复了bug。
unity的Axis设置,路径为Edit->Project setting->Input:
属性如下:
Name:按键名该键的名称,可以在脚本编程中直接引用他。比如:Input.GetButtonDown(“Jump”);
Descriptive Name:==【描述名】==在游戏的独立机构中的配置对话框中,当控制值为正时候所显示的名称。默认空白。
仅做记录
vscode需要的插件如下:
- Auto-Using for C#,自动添加引用
- Unity Code Snippets,unity代码补全
- c#,必备
- C# XML Documentation Comments,三下///实现xm注释l
- Code Runner,运行代码
- GitHub Theme;eppz! (C# theme for Unity);Gruvbox Theme;(三款编辑器皮肤