自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Gary的面包屑小道

进阶的小白

  • 博客(169)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 客户端面试知识点总结

最近通过自己的面试,计划进入新的一家公司进行工作,中间面试的过程中也发现了自己的一些不足,因为有一些知识点在工作中用到的机会不会很多,就会有一些遗忘,所以自己也是一边总结一边面试,将自己每一次...

2021-06-07 16:20:01 2322 5

原创 【toLua++】toLua++编译生成tolua++.exe史上完整版

准备材料:1、Lua源码,我用的是Lua5.12、toLua++源码白嫖党这里集合:链接:https://pan.baidu.com/s/1iCUWNCZve48JP5CCVDeIXg 提取码:eao0这里面有我编译好的Lua的源码以及lib库,以及生成的toLua++.exe,版本是:tolua++-1.0.92,命令行输入:toLua++ -v即可查看。如果你只想用toLua++.exe,现在可以撤退了。lua-5.1.5里面结构如图:toLua++里面结构如图:下面是整个.

2021-02-26 11:22:09 926

原创 【Unity和Android相互调用】AndroidJavaProxy的使用(以C#为主导)

重点声明:本片还是可以归纳为以C#为主导的方式进行和Unity的通信,之前的一篇博客介绍了以C#为主导的和Android进行通信的方式,这一篇算是一个补充。其中使用了C#提供的AndroidJavaRunnable来代替Android中的Runnable。其实我们在Java开发的过程中,还有一种经常使用的方法是继承AndroidSDK中提供的接口,然后自己重新重载里面的函数来实现自己的逻辑,遇到这种情况的时候,我们应该怎么办呢?这个时候Unity中还为我们提供了一个另外一种方法:AndroidJa

2021-02-24 16:31:26 1526 4

原创 【Unity和Android相互调用】以C#为主导的调用方式

之前的两篇博客介绍了导出Jar以及Aar包供Unity调用的方式。今天主要记录一下只是用C#来调用Android中接口的方式。只用C#的方式指的是真的只用C#,不需要导出什么这个包,那个包乱七八糟的东西,只写C#的代码,所以我把这种方式叫做以C#主导的方式。首先先告诉大家这种方式的优点和缺点,大家看了之后再根据自己的实际情况进行选择。优点:只写C#代码,不需要导出哪些乱七八糟的东西,十分的简单。缺点:只能调用AndroidSDK中的类以及里面的方法,不能调用自定义的方法。原理:因为我们在

2021-02-24 10:51:39 1036

原创 【Unity和Android相互调用】导出Aar包(简化版)

之前的一篇博客写了导出Jar包的方法来提供Unity和Android之间的通信,但是其实这种方法官方已经不再推荐了,作为时代的弄潮儿,我们应该与时俱进。本文介绍的的方法是通过AndroidStudio导出Aar包,但是我查了一些博主的文章,好多都是导出Aar包还要使用AndroidManifest.xml,在这之前还要把Unity的jar包导入到Android中去,然后修改生成的包名,自己弄了一遍,可能是包名的原因,一直找不到包里面对应的函数。感觉这种方法也比较麻烦。偶然间发现了一篇博主的文章,通过

2021-02-19 22:26:13 758

原创 【Unity和Android相互调用】导出Jar包_Unity调用Android的MainActivity类的函数

Unity中调用Android的类成员函数方法我们在Android的MainActivity类中声明一个“add”函数,这个函数这个函数有两个参数a,b,都是int类型的。然后返回两个函数的和。本篇文章的重点,在于调用的过程,所以将调用的函数简单化。如果该函数调用成功,则参数类型和返回值就可以改为其他基本类型的数据。我使用的AndroidStudio版本:AndroidStudio4.1.1,Unity版本是:2019.4.4f1Android部分:1、建立空的Android工程,选择

2021-01-25 23:29:23 527 1

原创 【Dear imgui】ImGui在Android中的多点触摸的解决过程

DearImGui不支持多点触摸是DearImGui的一个硬伤,最近刚好要处理这个问题。但是知道写这个博客为止,还是没有完美的解决这个问题,写这个博客的目的只是为了表述一下自己的实现过程,以及最后不完美的解决方案。DearImGui一直为PC实现的框架,让后端程序员能够专注于逻辑的书写,使用简单的逻辑就能实现界面。但是PC和移动端有一个很大的区别就是输入模式的差别,在PC上,屏幕需要响应的就只有一个鼠标,但是在移动端上面,就牵扯到一个多点触摸屏幕的时候,多点触摸时候,相当于PC屏幕上有两个鼠标在

2021-01-14 23:15:44 2634 3

原创 【Dear imgui】ImGui输入框在Android中的解决方案

Dear ImGui本身是一个十分强大的GUI解决方案,但是目前为止,作者的回复仍然是DearImGui主要还是为PC进行服务,但是由于DearImGui本身使用底层图形API进行绘制,所以其跨平台性是非常强的。所以随着作者的不断更新,DearImGui在移动端使用也是他们考虑的方向之一。背景:在我目前的项目中,移动端使用的UI解决方案就是DearImGui,既然在移动端使用,无法避免的就是输入问题,PC中的键盘消息,DearImGui使用的是GLFW这些库去处理,所以使用InputText、I

2021-01-08 19:59:36 5225 1

原创 【Dear imgui】使用DearImGui做一个摇杆

效果图:实现方式:ImGui,使用语言:Lua实现原理:摇杆分为上下两个部分:上圆和下圆下圆为基础圆,一旦确定,位置是不会动的,计算中的数据都是依照这个圆的Position和Size进行计算上圆是依照手指在屏幕上的位置,进行显示。然后因为两个圆不需要响应任何的逻辑,只需要在适当的位置进行显示,所以我使用的是ImGui::Image进行渲染。没有用ImageButton,实际上两个接口的参数差不多,只不过在使用ImageButton的时候,按键之后,就会有高亮显示,就有点突兀了,所

2020-12-26 16:10:51 1872 2

原创 iOS开发-使用Xcode编译到真机的App网络访问失败解决办法

问题描述:iPhone设备及其版本:X(14.2),5S(不详),XR(14.0)出问题的设备:X(14.2)问题详情:因为代码中有http下载的模块,需要有网络连接,但是建立网络连接的第一步,一直都是失败,检查手机网络:正常,百度可以上,检查服务器,也正常。无论iPhone X怎么重启,删除app,网络一直连接不上,同一台机器的其他app都正常使用,5S和XR,使用同一份代码编译,app也可以正常使用。解决方案:直接贴大佬博客:http://www.dpull.com/blog

2020-11-27 11:18:08 1440 6

原创 Unity_UGUI实现圆形按钮的底层实现

在使用Unity的UGUI过程中,我们通常会遇到一种需求就是会,创建一个圆形的按钮或者图标。先说说正常实现这么一个圆形组件的步骤:1、创建Image组件Img1,作为父组件2、在父组件下面创建子Image组件Img2,3、在Img1中添加Mask(Script)组件,然后给父组件赋一个图片这个图片的周围是透明的,中间是圆形的纯色填充,用来做父组件的image4、然后我们给子组件img2赋上我们需要显示的图片最终父组件中Mask组件会帮我们做遮挡,然后将子组件img2显示成圆形:

2020-11-02 23:03:01 2674

原创 Android Studio太卡怎么办

打开两个AS工程,结果AS卡到爆炸。。。。。原因:java虚拟机内存不够了,频繁的触发GC,就会很卡顿。解决办法:那该死的虚拟机内存改大一些。官方文档:https://developer.android.com/studio/intro/studio-config#adjusting_heap_size知乎上有大佬是这么说的:https://www.zhihu.com/question/32282404/answer/55605283(罗森的回答)设置一下,改一下,就成了~~.

2020-09-01 17:25:00 549

原创 Lua-协同程序

关于Lua中的协程其实,自己在实际的开发中用的不多,主要是因为Lua作为脚本,其实使用的目的还是为了能够处理一些简单的逻辑,而去给宿主语言一个结果。但是Lua中的协程还是有需要了解一下的。协程其实是在很多的语言中都存在的一个概念,而且很多文章开头都是先摆概念:协程拥有独立的栈,能够和其他的协程共享全局变量,而且开销也很小。开销很小的原因主要还是因为协程有自己的上下文,然后切换协程的时候,只需要将上下文切换就可以了,不需要再去开辟其他的资源,就会很快。然后主要还是协程的使用方法。协同程序的

2020-07-22 21:35:58 206

原创 Lua-元表

Lua里面有一个就目前来说,暂时没用过,但是觉得很有用,可能将来需要用到的东西:元表。什么是元表,以及元表是做什么的?就我理解,元表是一种附加属性,是需要依附在一个正儿八经表的上面的,这个表里面可以存放我们需要重定义的一些对表的操作。比如:在C++或者Java中经常需要将一个坐标封装成一个二维向量的结构体,然后在里面重载一些加减的操作, 因为普通的加减是对于两个数字的,但是当你想让两个二维向量相加的时候,需要将X相加,然后Y相加,然后返回一个二维向量,此时普通的加号就没有办法完成我们的操作了、这

2020-06-30 22:36:40 445

原创 Android开发—华为手机应用内升级之后App图标消失

问题:因为应用内部增加了App更新的模块。但是测试反应在以下机器上,应用更新之后,桌面的App图标消失了。但是我在应用管理里面查看,应用其实是还在的。问题机型:华为荣耀V10(尊享版(9.0.0))、华为 P20(全网标配(8.1.0))、华为mate20 PRO(9.0)、华为 荣耀 V20(全网高配(9.0))因为只进行了兼容性50的测试,所以虽然目前出问题的都是华为的机型,但是也不能确定就是华为手机一家的问题,毕竟测试机里面还有华为Mate30Pro,但是测试用的Mate30Pro系统是10.

2020-05-26 11:15:23 2018

原创 Android开发—Intent对象

Intent在Android开发中非常重要,其封装了我们想开启其他组件的“意图”,大概意思就是:如果我们需要开启其他的组件,其他的Service,或者我们在启动其他组件的同时需要交换一些数据,这个时候就需要将我们的数据封装在Intent中,然后通过这个Intent来启动。Android应用程序中有三个重要的组件:Activity,Service,BroadcastReceiver,这三个组件的启动,我们都是通过Intent来启动,而Intent里面就封装着我们可能要交换的数据。Intent属性大致包

2020-05-21 11:19:27 326

原创 【Dear imgui】有关Image的实现

使用Image组件加载图片使用Image组件加载图片比较简单,但是还是有需要注意的地方Imgui中使用图片, 我是使用OpenGL的指令生成纹理贴图,进行设置,然后加载图片使用的是SOIL库我们生成纹理贴图的时候,需要将纹理提前生成好,然后获取纹理的ID,而不是在帧循环里面和窗口渲染一起进行生成纹理,如果将生成纹理的部分放在了帧循环里面,那么纹理在显示一会之后,图片就会黑掉,此时我猜测...

2020-04-22 20:30:03 4592 1

原创 【Dear imgui】Widgets/Basic实现

在学习imgui给出的Demo中,自己手动实现了一下Widgets/Basic选项里面的组件,并且做了一些简单的修改。在贴代码之前,简答说一下遇到的一点点坑:Text系列函数显示汉字的解决方法,已经在另外一篇博客中阐述:【Imgui基础学习】组件的使用之Text但是,有可能我们需要在代码里面使用我们输入的汉字比如现在我们需要用户去输入一个文件名,然后使用用户输入的...

2020-04-08 17:32:15 2209 3

原创 【Dear Imgui】组件的使用之Text

1、Button的使用if (ImGui::Button("clickme")){ // 当点击button的时候,就会进入if的判断分支 // if里面写的逻辑就是点击button的回调}2、Text的使用int idHello = 0;ImGui::Text("idHello = %d", idHello);Tip::Text使用的参数和C语言的pri...

2020-04-07 20:12:48 8985 8

原创 【Dear Imgui】组件的ID

1、组件的ID只要是需要和使用者交互的组件,每一个组件都需要有一个ID,但是想Text这种组件可以不需要ID,但是想Button这种组件就需要一个ID。Button("OK"); // Label = "OK", ID = hash of (..., "OK")Button("Cancel"); // Label = "Cancel", ID = h...

2020-04-07 15:07:45 1815

原创 使用okhttp3进行应用内的更新(Android)

背景:因为手头上做的这个app在Android上没有进行大规模的团队开发,但是想先发给玩家进行测试。所以就需要在app中添加一个更新的模块。效果:进入app的时候,就会检测当前的版本是不是最新的版本,如果是的话就会进行弹窗提示,设置弹窗是否可以关闭来代表此次更新是否是强制的更新。使用的框架是okhttp3github的地址是:https://github.com/square/okht...

2020-04-04 23:27:01 1240

原创 各种有用的有关安装环境文章的大集合

Mac安装homebrewhttps://www.jianshu.com/p/89083fe3b1bfMac通过homebrew安装adbhttps://www.jianshu.com/p/69ba21b2996c

2020-02-12 16:49:01 229

原创 Android应用程序中的DVM和Linux中进程的区别

DVM指的是dalvick的虚拟机,每一个Android应用程序都是在它自己的进程中进行的,都拥有一个独立的dalvick虚拟机的实例,而每一个DVM都是Linux中的一个进程。Android的DVM:Dalvick是Google设计的专门为Android平台设计的虚拟机,每一个Dalvick应用都可以作为一个独立的Linux进程。为什么要作为一个独立的应用程序呢?因为独立的进程可以防止进...

2020-01-29 21:36:19 1096

原创 细数Android原生工程接入EasyAR-SurfaceTracking遇到的坑

背景:该篇文章总结于在原生的工程中接入EasyAR的SurfaceTracking的过程中遇到的一些问题,有一些问题是知识性的问题,有一些问题是可以称之为是坑的问题。关键词:Android原生中有关OpenGL的渲染设置EasyAR初始化失败EasyAR照相机黑屏在Android Studio中进行有关EasyAR矩阵的调试(矩阵数据变的很诡异)如何在自己的引擎中进行设置E...

2020-01-11 14:37:46 1258 6

原创 Unity小游戏——移动的小船船(摇杆控制方向)

关键功能:1、摄影机跟随船体移动2、船体在水面上晃动3、摇杆控制方向摇杆控制方向的话,这里我是简单的使用了一个Unity的插件:EasyTouch,EasyTouch里面的有一个EasyJoyStick(摇杆控制)当你导入到你的Unity工程的时候,你的窗口选项就会多一个:然后我们就可以按照这个步骤来创建一个EasyJoyStick的对象:创建完成之后,我们就可...

2019-11-27 21:57:09 2301

原创 Unity小游戏——移动的小船船(船体在水面上晃动)

关键功能:1、摄影机跟随船体移动2、船体在水面上晃动3、摇杆控制方向船在水面上晃动的原理其实就是船体围绕着Z轴和X轴旋转一个小的角度,然后在恢复回来,然后在旋转的一个小过程usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassSh...

2019-11-27 21:55:12 3582

原创 Unity小游戏——移动的小船船(摄影机跟随船体移动)

关键功能:摄影机跟随船体移动 船体在水面上晃动 摇杆控制方向摄影机跟随对象的原理:每一帧的开始的时候,都先去把这个摄影机移动到和对象相同的位置,然后收集跟随对象旋转的角度,然后将摄影家挪到对象的后面,在想上挪动一段距离,这个时候,摄影机就到了对象后面靠上,并一直跟着对象。usingSystem.Collections;usingSystem.Collections.G...

2019-11-27 21:54:05 1021

原创 Unity特殊文件夹以及资源管理

1:Editor文件夹 (不会打包)Editor文件夹可以在根目录下,也可以在子目录里,夹就可以;Editor下面放的所有资源文件或者脚本文件都不会被打进发布包中,并且脚本也只能在编辑时使用;一些工具类的脚本放在这里,或者是一些编辑时用的DLL, 类似技能编辑器,那么编辑器的代码放在这里;2: Editor Default Resources (不会打包)Editor ...

2019-11-27 21:53:00 851

原创 Unity—JSON处理

1: JSON (JavaScript Object Notation)随着JavaScript的流行与互联网应用,JavaScript里面最强大的数据类型Object,使用起来极其的方便,为了能更好的做数据交换,设计了JSON协议,能够将JavaScript里面的Object,变成可以阅读的文本数据及JSON数据格式。实现JavaScript里面的Object与JSON的转换,Ob...

2019-11-25 21:38:54 395

原创 Unity—角色描边以及Shader的切换

在游戏里面我们经常看到有一些人物,在被攻击的状态或者鼠标挪过去的时候,人物或者模型就要有一个边边,但是不在攻击状态或者鼠标不在区域的时候,就是正常显示,像这样:这个效果是是怎么实现的呢?首先我们需要一个模型,:People,以及一个材质,一个材质贴图,还有就是两个shader,一个shader是正常的,一个shader是带描边的,这些shader其实网上有很多,我们直接用就可以,这里我...

2019-11-25 21:36:35 1248 2

原创 Unity高级功能—AssetsBundle的打包与下载

假设我们现在有一个立方体的预制体需要打包进来怎么操作?创建一个立方体,然后将它托进res文件夹,制作一个立方体预制体(prefab) 右下角的小窗口里面,我们可以设置这个prefab为一个AssetBundle,点击New,就可以给他设置自己的名字,我给这个prefab归属到“cub_bundle”类里面3、编写脚本,进行打包我们创建一个Editor的文件夹,然后在里面创建...

2019-11-22 21:11:49 793

原创 Unity高级功能—网格导航寻路

应用场景:类似于LOL中,鼠标点击地图上的某一点,然后人物就会自动的走过去。准备场景:一个Plane,作为地面;一个Cube,作为障碍物;一个胶囊体,作为人物。打开导航选项卡:Mac:Window——AI——NavigationWindows:Window——Navigation选择Plane,然后打开Navigation选项卡,Navigation Area里面的...

2019-11-22 21:05:58 2610

原创 Unity高级功能—拖尾渲染器

用途:用于实现一些类似于刹车的痕迹的效果做法:我们准备一个Plane,将这个平面在Z轴放大100倍,模拟一个跑道;然后准备一个Cube,模拟一个赛车,像这样:绿色和红色是我为了区分出来,而做的简单的材质。此时我们创建一个空的游戏对象,然后将这个游戏对象作为Cube的子节点,备注:tail:在这个节点上面添加“拖尾渲染器(Trail Renderer)”接下来我们就要制作...

2019-11-21 21:46:58 1138

原创 Unity高级功能—获取其他对象的mesh,来显示创建的空对象

当我们创建了一个空的游戏对象:Gameobject,以及一个立方体Cube,此时Gameobject没有任何的属性,所以我们给其添加Mesh Filter属性以及Mesh Renderer属性,Mesh Filter属性用来管理当前物体的mesh文件,mesh文件存放了物体的顶点信息,Mesh Renderer组件用来渲染当前物体。我们可以给这个空的游戏对象挂载一个脚本,然后获取Cube的me...

2019-11-21 21:43:11 1657

原创 Unity高级功能—预先全局光照GI

因为我们的Realtime每帧都会计算光照,但是实时光照是不会反射的,所以它的光影显得单调;Baked GI:通过烘培光照贴图的方式获得很好的光照效果,无法实时的改变光照;当我们在地面上放置的立方体是红色的时候,地面上反射的应该也是淡淡的红色,这个效果就是得是用我们的预先全局光照。之前在网上查资料,好多的资料都是说在Lighting选项卡有一个Precumputed Realtime ...

2019-11-21 21:41:34 270

原创 Unity高级功能—光探头

首先我们先说一下我们在什么时候会使用这个光探头当我们在一些静态场景中,将光照烘焙出来的时候,此时物体的阴影效果都是光照烘焙出来的结果,但是如果此时我们有一个动态的物体进入了这个已经经过烘焙的场景之后,那么这个动态的物体身上是不能反射出当前场景的光照的,就像这样一样:Tip:当前场景中有一个红色的点光源,以及左边的墙和一个地面,烘焙之后,加入一个立方体,此时立方体是没有收到这个光源的作用的,...

2019-11-21 21:39:56 655

原创 Unity高级功能—法线贴图的制作以及在代码里面进行材质上贴图的切换

制作法线贴图还是得美术提供你几张基础的法线贴图之后,然后再去制作。现在我们手里有两张贴图,一张是正常贴图,一张是法线贴图;1、选择美术提供的基础的法线贴图:Tip:其中Filtering选项有的地方说是应该选择Sharp,但是我的默认就是Sharp。2、选项设置完成之后,点击右下角的“Apply”就会看见贴图变成这样:此时我们的法线法线贴图就做好了。代码里面怎...

2019-11-21 21:36:03 1237

原创 Unity高级功能—自发光材质的制作

将场景中的所有光照都关闭之后:场景中有一个Plane,两个被拉变形的Cube,看似像是三个面组成的角落,然后中间是一个正方体Cuble。需要关闭的光照有哪些:场景自带的一个光照Directional Light 天空盒的光照(windows - Lighting - Lighting setting),然后将天空盒的选项置为空关闭所有光照之后,创建一个材质。...

2019-11-19 22:47:14 2770

原创 Unity高级功能—本地储存

本地储存的应用场景就是当你的游戏玩耍到一半的时候,退出了,下次进入的时候,还需要之前的状态信息,这个时候就需要用到本地储存。Unity里面有一个专门的类,来处理这个本地储蓄:PlayerPrefs类这个类处理的相当于一个键值对:<String name, Value>主要的处理方法:(1) SetInt/SetFloat, SetString: key--&...

2019-11-19 22:43:23 627

原创 Unity高级功能—3D拾取

3D拾取的原理请看本人博客的:DX9中的3D拾取,此文章只记录Unity中的3D拾取 。1、创建一个Cube,当我们使用鼠标点击二维屏幕的时候,相当于从发出一条射线,然后将这条射线和三维世界中的物体进行判断相交,第一个相交的物体就是点击到的物体。2、给Cube添加脚本:usingSystem.Collections;usingSystem.Collections.Gener...

2019-11-19 22:41:31 633

C++思维导图

整理了一下自己在学习c++的时候基础知识点,使用了思维导图,使得条理更加的清晰,方便去学习,也方便自己去复习C++的相关知识,避免遗忘。

2018-02-26

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除