Invoke方法是Unity3D 中的一种委托机制。
现在看一下官网给出的API:
public void Invoke(string methodName, float time);
methodName 是方法名,time 是具体几秒
Invokes the method
methodName
in time seconds.
在具体事件以后调用这个方法
一个场景内有多个相同组件使用相同数值的时候,这个组件也在内存中多了一份实例,浪费内存空间。
static或者[Serializable]修饰的变量,在程序退出后会还原。编辑器模式运行时,只能通过Copy Component Values来临时保存调整好的数值。
项目之间、场景之间数据很难共享。
在runtime下要改变某个GameObject上组件的数值,就一定要获取到这个GameObject实例,使项目耦合度成倍提高,最后变成蜘蛛网。
场景中总会有一些空的GameObject用来保存和共享数据,这个GameObject基本不会参与太多的游戏逻辑,但为了保存和共享场景内的数据就不得不碍眼的在场景中出现,逼死强迫症,也不利于模块抽象。
同样,要通过UGUI Button中的On Click事件调用一个GameObject上的方法,也只能获取到GameObject实例来调用,数量太多的话也变成了蜘蛛网。
创建一个3d对象Quad,重命名为SimpleBackground,调整好大小(跟图片差不多大)
新建一个材质,设置shader为Unlit/Textu
将图片texture type设置为default,拖入材质。
将材质拖进SimpleBackground,这样就做好了背景。
通过实时更改材质中offset偏移值,来实现滚动效果
滚动代码如下:将Start()改为每帧刷新的协程(模拟Update())
Material material; |
unity的Axis设置,路径为Edit->Project setting->Input:
属性如下:
Name:==按键名==该键的名称,可以在脚本编程中直接引用他。比如:Input.GetButtonDown(“Jump”);
Descriptive Name:==【描述名】==在游戏的独立机构中的配置对话框中,当控制值为正时候所显示的名称。默认空白。
3 / 3