UG4L13——输入处理
UG4L13——输入处理 本章代码关键字 12345678910111213141516171819202122232425Stage.isTouchOnUI //判断是否点在了UI上GRoot.inst.touchTarget //获取指向的UI对象gObject.onTouchBegin.Add() //添加鼠标(左中右键)/手指按下的监听事件eventContext.inputEvent.button //获取按下的是哪个键gObject.onTouchMove.Add() //添加按下后移动的监听事件eventContext.inputEvent.x //获取移动的坐标x轴,是物理屏幕坐标,如果想使用UI坐标需要使用GRoot.inst.GlobalToLocal()转换eventContext.inputEvent.y ...
UG4L12——坐标系统
UG4L12——坐标系统 本章代码关键字 123456gObject.LocalToGlobal() //输出元件在FGUI坐标系下的物理屏幕坐标gObject.GlobalToLocal() //获取物理屏幕坐标在UI元件上的局部坐标GRoot.inst.GlobalToLocal() //将元件在物理屏幕上的实际坐标转换为FGUI计算使用的逻辑屏幕坐标gObject.LocalToRoot() //将局部坐标转换为FGUI计算会使用的逻辑屏幕坐标(第二个参数必须传入GRoot.inst)gObject.RootToLocal() //逻辑屏幕坐标转换为相对于父元件的局部坐标(第二个参数必须传入GRoot.inst)gObject.TransformPoint() //计算相对于自己的某个位置相对于另一个元件的位置 FairyGUI的坐标原点 FairyGUI是以屏幕左上角为原点的,Unity的屏幕坐标是以左下角为原点 如果想转化屏幕坐标和UI坐标: 12345678910void...
UG4L11——分辨率自适应
UG4L11——分辨率自适应 本章代码关键字 1gObject.MakeFullScreen() //将组件大小填满屏幕 FairyGUI中的分辨率自适应 FairyGUI为手游开发提供了自动适应各种设备分辨率的UI适配策略 这意味着开发者只需要制作一套UI,就可以适配所有分辨率的设备 分辨率自适应具体步骤 制作UI时使用一套设计分辨率(以最大的全屏UI界面的大小为标准),比如:1136*640、1280*720、1920*1080等等 如何确定设计分辨率: 设计分辨率的确定主要按宽高比例设计 一般考虑市面上主流设备的分辨率比例,比如 16:9、19.5:9 等等 目前iphone主流机型分辨率比例为 19.5:9(2436*1125) 建议采用该比例设计 (选择较大比值) 采用该比例不是说就用2436*1125来做,因为分辨率越大,意味着图片越大,那么在使用时所占的内存就大 你可以根据自己游戏的实际情况来进行设计 比如 1950*900 也是...
UG4L10——组件拓展类
UG4L10——组件拓展类 组件类拓展 FairyGUI提供了绑定一个类为组件的扩展类的功能,让我们可以更加面向对象的进行编程 回顾目前显示面板,处理面板逻辑的方式,目前我们的面板并没有声明一个类与之对应专门处理该面板的逻辑 这样的写法显然是不够面向对象的 通过view面板获取它的子对象 然后处理子对象 对应逻辑 初始化 或者 事件监听 组件类拓展就可以将某一个面板的逻辑封装到指定类当中 实现组件类拓展 创建自定义类继承 GComponent 123using FairyGUI;public class MyPanel : GComponent { } 重写 ConstructFromXML 方法,在其中初始化面板相关控件 12345678910111213141516171819202122using FairyGUI;using FairyGUI.Utils;using UnityEngine;public class MyPanel : GComponent{ public GTextInput inputTxt; ...
UEDL16——AssetImporter 和 AssetPostprocessor
UEDL16——AssetImporter 和 AssetPostprocessor 本章代码关键字 1234567891011121314151617AssetPostprocessor //主要用于处理资源导入时的通用逻辑,我们可以通过继承该类,并实现其中的一些回调方法来自定义处理资源assetPostprocessor.assetImporter //对应类型的资源导入器对象(AssetImporter类型),通过该属性来设置导入的资源assetPostprocessor.assetPath //导入资源的路径。该属性常用于导入资源时执行了回调函数后获取到导入资源的路径OnPreprocessTexture() { } //继承AssetPostprocessor的类声明该方法,导入纹理资源之前会调用,允许修改纹理的导入设置OnPostprocessTexture() { } ...
UEDL15——CompilationPipeline公共类
UEDL15——CompilationPipeline公共类 本章代码关键字 123CompilationPipeline //用于处理代码编译相关的操作和事件的公共类CompilationPipeline.assemblyCompilationFinished //当一个程序集编译结束会主动调用该回调函数CompilationPipeline.compilationFinished //当所有程序集编译结束会主动调用该回调函数 CompilationPipeline公共类 它是 Unity 编辑器中的一个公共类,用于处理代码编译相关的操作和事件的 对于我们来说,我们最常用的是利用它得知代码是否编译结束,比如动态生成脚本时,我们需要在编译结束后才能使用新的脚本 关于 CompilationPipeline 的更多内容: Compilation.CompilationPipeline - Unity 脚本 API(中文文档,部分翻译缺失) Unity -...
UEDL14——EditorApplication公共类
UEDL14——EditorApplication公共类 本章代码关键字 123456789101112131415161718//监听编辑器事件EditorApplication.update //每帧更新事件,可以用于在编辑器中执行一些逻辑EditorApplication.hierarchyChanged //层级视图变化事件,当场景中的对象发生变化时触发EditorApplication.projectChanged //项目变化事件,当项目中的资源发生变化时触发EditorApplication.playModeStateChanged //编辑器播放状态变化时触发EditorApplication.pauseStateChanged //编辑器暂停状态变化时触发//管理编辑器生命周期相关EditorApplication.isPlaying ...
UEDL13——PrefabUtility公共类
UEDL13——PrefabUtility公共类 本章代码关键字 123456PrefabUtility //提供用于处理 Prefab(预制体或称预设体)的方法的公共类PrefabUtility.SaveAsPrefabAsset() //动态创建预设体文件PrefabUtility.LoadPrefabContents() //加载预设体到内存内,可以用于深度修改预设体,如添加移除游戏对象或脚本,或者修改父子关系,使用完毕必须释放PrefabUtility.UnloadPrefabContents() //卸载加载到内存的预设体,LoadPrefabContents()调用后必须调用该方法PrefabUtility.SavePrefabAsset() //保存对预设体文件的修改,局限性较大PrefabUtility.InstantiatePrefab() //将预设体文件对象实例化到场景后上 PrefabUtility公共类 它是 Unity...
UM4L6——打包测试
UM4L6——打包测试 接入SDK后的打包 在接入 SDK 后,理论上来说,通过 Unity 打包或 Android Studio 打包都是可以的 只要我们保证 Unity 中导入了对应 SDK 会用到的第三方 aar 或 jar 但是为了避免依赖的第三方库或系统库找不到,建议选择AndroidStudio打包 使用Android Studio打包 Android Studio 打包具体可看:UM1L5——Android Studio打包安卓应用 如果遇到了问题(如出现两个图标等),请参考:UM3L5——Unity中嵌入Android内容 中的使用 Android Studio 打包相关内容 显示效果 注:如果你在真机尝试时定位不到,请先检查是否开启了定位权限,然后将测试真机拿到室外去尝试定位,否则可能无法返回正确消息 安装后,点击获取定位按钮,效果如下:
UM4L5——Unity调用对应API
UM4L5——Unity调用对应API 按照官方文档添加相关功能代码 此部分参考: 隐私合规接口 | 百度地图API SDK (baidu.com) 获取全球经纬度 | 百度地图API SDK (baidu.com) 获取地址 | 百度地图API SDK (baidu.com) Android Studio 内大致实现思路: 声明一个监听类继承 BDAbstractLocationListener,它用于在 MainActivity 内被调用,开始获取定位信息 该类里需要实现一个监听定位成功的函数 onReceiveLocation,定位成功后通过传入的定位结果类 BDLocation 对象获取定位的地址信息 将获取到的地址信息通过 UnityPlayer.UnitySendMessage() 发送到Unity,再通过Unity输出这些消息 在 MainActivity 内实现一个提供给Unity调用的获取地址的方法 GetAddress(), 该方法会先执行隐私合规接口,确保获取地址消息正常,然后实例化 LocationClient 和监听类...