Unity知识
随机数生成
在几秒内连续生成随机数的情况
1 | Random.InitState((int)Time.time); //使用时间作为每次生成的种子, |
资源释放
对于实现了IDisposable的类来讲,其实例对象都可以通过 using var 来进行对象的获取,这样在超出该对象的作用域后,会默认调用实现的Dispose方法
1 |
|
事件系统
如果在项目中使用了自制的事件系统,记得任何被注册event都应该有取消注册的步骤。
具体使用场景,使用场景加载这功能,在异步加载的情况下,会在场景中加载两个场景后删除一个,没有显示的的场景也会运行场景中游戏对象的Awake函数,如果在这里存在事件的注册,之后的运行中,虽然该场景被销毁,但是注册的事件仍然存在,会报错。
该游戏对象被销毁但是仍然试图访问。
进一步延伸,有 回调 方法参与的都要有注册有取消。
++、–和get set函数
应当使用以下操作
1 | int temp = CurrentIndex; |
下面这种用作函数参数的处理方式,第二个参数的样式只能触发set ,不能触发get
1 | SwitchGridPage(CurrentIndex,--CurrentIndex); // 使用局部变量的值 |
英文路径
Unity项目的路径不建议使用中文,在2023.3.20版本中,根目录的上级目录为中文的情况下,导入Cinemachine会在控制台疯狂报错、
复合碰撞体Composite Collider 2D
使用的时候需要有一个父游戏对象,并且将需要进行碰撞体合并的游戏对象作为游戏对象的子对象。
使用的时候会自动在相同游戏对象上生一个RigidBody2D,不过需要手动将rig的类型改为 Static
子游戏对象身上需要有碰撞体组件,在2023的版本中,将 use by Composite改成了红框中的内容
选择为merge就可以实现基本的内容
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 mao的博客!