U3D学习笔记(9)

来源:互联网 发布:手机短信软件 编辑:程序博客网 时间:2024/06/05 08:39


1.u3d接入sdk相关
 简单来说,”母包”就是 游戏代码 + AnySDK Framework;”渠道包”就是 游戏代码 + AnySDK Framework + 渠道SDK(包括代码+资源)。
 manfest.xml可以配置许多个activity(对应一个个类)拿广告sdk来说,有闪屏activity,mainactivity等,貌似第一个定义的就是入口activity
2.u3d-android的一些大坑
 1.不同项目不要使用同一个包名,不然会报错UNEXPECTED TOP-LEVEL EXCEPTION:
 java.lang.IllegalArgumentException: already added: Lcom/hq/hq/R$attr;
 2.res添加的是第一层目录里的有value文件夹的那个
 3.auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S "res" -I指文件资源缺失,下面会有详细路径
 4.U3D导出安卓版本,总会出现Unable to find unity activity in manifest. You need to make sure orientation attribut is set to portrait manually.
 解决方法:在AndroidManifest.xml加入一行参数就可以了。
 Xml代码  <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> 
3.quaternion*vector3是合法的,但是反过来乘就是错的,类似于矩阵,a*b!=b*a。
 注意q*v表示把向量v转过q度!所以一般是rotation(它是四元数)*v或者quartnion.euler(0,90,0)*v表示v绕y轴转90度。
4.U3d游戏模式相关
 基本思想: 封装变化点,哪里变化,封装哪里。
 -1.模板模式:其实就是抽象基类,然后多个具有相似属性的子类继承和实现,减少了代码量并且可拓展,维护.
 0.工厂模式:简单工厂模式,就是把对象实例化放到子类实现,如果有新对象需求,只要在父类添加,子类什么都不需要动,就是一个方法f (int x ),根据你传入的x 判断(switch case )执行哪种情况。(就像工厂一样生产而不用你每种情况都分别制作),用这个函数来负责实例化。类似于一级树状结构
 0.5高级一点的工厂模式加了抽象基类,把类的实例化放到子类中,相当于二级树状图,用来应对当需求实例化的对象大到无法用同一个类来解决的情况。就可以再新创一个类(和原来的类继承同一个基类),再利用上面的简单工厂实例化对象
 1.单例模式:所有数据放到一个单例里面全局管理,人物之间的交换通过单例“间接”执行
 注意可以继承monobehaviour 类,但是切换场景时要dontdestoryonload ,并且如果新场景里也有这么一个脚本(如果本来就挂着一个)要删掉,保证是原来那个。但是在多线程里可能出问题(全局变量也是),但有改进的方法
 2.mvc模式: model (模型数据),view ,control 分离成三块控制
 3.观察者模式:如发生了什么,通知所有玩家发生了这件事。或者发生了爆炸,通知周围一定范围物体受到多少伤害。c#的委托可以实现




0 0
原创粉丝点击