重点:
//编辑器下查找指定资源
AssetDatabase.FindAssets()
//GUID转文件路径
AssetDatabase.GUIDToAssetPath()
//显示进度小弹窗
EditorUtility.DisplayProgressBar()
//清理进度小弹窗
EditorUtility.ClearProgressBar()
重点:
//编辑器下查找指定资源
AssetDatabase.FindAssets()
//GUID转文件路径
AssetDatabase.GUIDToAssetPath()
//显示进度小弹窗
EditorUtility.DisplayProgressBar()
//清理进度小弹窗
EditorUtility.ClearProgressBar()
数据类序列化为二进制,必须要加上序列化标记[System.Serializable]
报错“Type xxx is not marked as Serializable.”
lua 里面没有int
在VS里面写lua很难调试
这里提供了JSON的读取方法
下载
知识点:
协程在static方法中不能开启,要转为普通方法
未预测新类补丁开发的处理方法
1.建立一个空类
2.在空类中实现热补丁
设计模式的作用:
1、解决同一种类型的问题
2、使用设计模式可以让代码结构更加清晰
面向对象设计中常见的设计原则
1、单一职责
2、开-闭原则
3、里氏替换原则
4、依赖倒置原则
5、接口隔离原则
6、最少知识原则(迪米特法则)
在unity地形下实现建造系统(类似于war3点击地面创建建筑)地面高低不平的情况下,检测其为不可建造。
方法一:利用射线去检测,检测地面是否位于可建造平面上。
法二:在地形的障碍物上设置碰撞器,
劳动合同
unity4-unity5
组件弃用解决方法:
例:Rigidbody可用 GetComeponent<Rigidbody>( )解决。
Api弃用:
例:Application.LoadLevel("name")
可用 SceneManager.LoadScence("name")
替代。
如果无法
查找某Api的命名空间:unity>Help>ScriptReference>Serch
提问的时候,记得附上代码,以及行数。
截图也应当将行数截下,插件
短板知识:lua使用c#泛型
坑:lua使用C#重载方法
解决思路:
1.有C#的方法去整值
2.lua的math.floor
坑:lua使用C#重载方法
一共有四种坐标系:
全局坐标系 World Coordinate System
局部坐标系 Local Coordinate System
屏幕坐标系 Screen Space
视口坐标系 ViewPort Space
导入util库
把util文件放到补丁脚本文件夹
require 'util'
util.hotfix.ex(class,'method',function(self)
self.method()
--自己的代码
end)
注销方法同xlua.hot
坑:
lua放在start里 无法保证补丁会在所需start之后,导致无效
要保证打补丁要先执行。
判断鼠标是否点在UI上
EventSystems.EventSystem.current.IsPointerOverGameObject()
补丁流程
1.using XLua;
2.打标签 [Hotfix]
3.编写lua脚本
xlua.hotfix(classname,methodname,function(self)
--方法代码
end)
坑:bullectAudio取不到值
private AudioSource bullectAudio;
private属性不能直接用,需要加xlua.private_accessible(calss)