自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 调用unity的Application.Quit();方法退出会导致重启问题

杀死前台进程 , 将所有的 Activity 关闭 , 然后调用 android.os.Process.killProcess(android.os.Process.myPid()) 或 java.lang.System.exit(0) 中的一种方法即可;如果当前进程处于前台 , 杀死该进程后 , Android 系统会重启该进程 , 这是 Android 系统本身的机制;以上方法在demo都可以使用并成功退出,但是在项目上就是不行。但是我使用demo工程,调用这个是正常的,摸不着头脑。

2024-05-14 19:58:20 450

原创 unity Handles方法绘制相关

Handles 方法

2023-12-29 09:41:54 749

原创 异步加载回调问题,多个资源异步加载,让其全部加载完回调

这样就可以实现全部加载完成后执行回调,为什么呢?

2023-06-01 17:13:35 173

原创 unity 中c#进行调用Android Java 中的类和方法(AndroidJavaClass)

发现了一个类AndroidJavaClass,可以调用Android Java 中的类和方法,比如说获取当前设备的基带版本号,检测设备是否可以进行拨号,然后跳转到拨号界面啥的。类包含了关于设备、系统版本、硬件和制造商等信息的静态字段和方法。方法返回运营商无线电固件版本号,即基带版本号。变量包含当前 Android 设备的基带版本号。对象,该对象表示 Android 系统中的。并将其结果存储在字符串变量。这行代码中,我们调用了。

2023-04-16 18:30:32 741

原创 unity 判断当前设备是否是模拟器(安卓)

ps:由于没用安卓相关开发知识,可能只是我写错了。发现都是不行的,因为现在的模拟器都会伪装==这个也是在手机上面有,模拟器上面是没有的。还有一个这个方法:获取设备固件版本号。测试了一下,都是没用成功。最后是在是没法了,只能打印所有的。在手机上面测试是有值的。

2023-04-12 18:36:36 2736 1

原创 unity开发遇到的问题和解决方法相关汇总

在开发游戏的过程中,总会遇到一些问题,但是解决了,没有记录解决方法,时间间隔又久,后面再遇到,又要趟一次坑…,所以先在这里记录一下,后面遇到就可以直接在这里来看解决方法了:这篇文章是不定时更新的,遇到一次坑,更新一次。

2023-04-10 16:44:30 1175 2

原创 unity 打包获取android手机系统权限

查了一下资料,unity里面自带有动态获取用户权限的方法Permission,需要UnityEngine.Android命名空间,使用动态获取接口RequestUserPermissions,参数是一个string数组类型参数。

2023-03-31 21:27:11 674

原创 Application.targetFrameRate安卓apk上设置帧率问题

unity安卓机上进行锁帧Application.targetFrameRate

2023-03-10 10:12:28 1178

原创 unity Editor扫描路径下场景或者组件,并进行批量修改

unity Editor扫描路径下场景或者组件,并进行批量修改

2023-03-06 20:36:00 408 1

原创 unity shader卡通渲染(描边)+阴影+多光源处理

说道卡通渲染,应该都会想到描边:我所学的描边有三种:一种是计算边缘深度检测描边一种是色差检测描边一种是利用顶点法线向外扩展返回单色pass,使用正面裁剪我用的第三种:pass{ //剔除前面 (朝向摄像机的面)保留内部渲染 Cull Front CGPROGRAM #pragma fragment frag float4 _LineColor; float _Line; struct a2v { float4 pos:POSITION; float3

2021-08-11 20:57:01 2034 5

原创 基于ugui和dotween的多消息提示小动画:

前提:必须包含DOTween插件,当然,如果不用插件做缓动动画,也可以用animation动画自定义相对应的缓动效果:效果:其实这个也挺简单的,用了两个队列(其中一个我还是使用了list),一个是消息显示队列,一个是消息缓存对象池(隐藏)。我用的是Resources.Load加载的预制体_layer 是我自定义划分的消息动画层(一个画布Canvas)代码比较简单,我就不说了:using DG.Tweening;using System.Collections;using System.Co

2021-08-11 20:16:10 213

原创 UGUI自定义ListView列表组件(虚拟列表)

最近在尝试使用ugui,发现这个还真的不方便,很多都是基础组件。自带的ScrollRect没有虚拟列表,如果有10000个,那岂不是需要创建10000个子对象?不过,身为程序员怎么能不偷懒呢?就打算自己封装一个组件:效果:用途一般是用来做排行榜啊,显示列表等:像这种首先需要一个数据结构体,作为后续存数据:public struct ItemDate{ public int index; public object data; public UIList m_paren

2021-08-11 17:57:19 2364

原创 (unity)游戏中摇杆:控制角色移动

摇杆其实挺简单的,只需要一个需要控制的角色target和控制其移动的方向传出去,调用角色的move函数就可以了:我是传出去使用的角度,基于摄像机当前前方向=摇杆上方向和摇杆当前到中心的向量之间的角度旋转:有点绕:如图所示//isDown是一个bool变量,记录是否正在使用摇杆 if (Input.GetMouseButtonDown(0)){ //这个是我自定义摇杆的触碰范围:是一个rect矩形,返回的是否在这个屏幕范围触碰的屏幕 isDown = App.Instance.chickI

2021-07-30 21:21:56 1940 1

原创 unity的摄像机处理--第三人称摄像机

摄像机应该具有平移跟随,旋转,缩放视野的功能,之前使用的是将摄像机放置到角色下节点,作为角色的子物体跟随,但是这样就写死了:网上查了一下,发现还是利用摄像机根据target进行处理还是挺方便的:首先必须要有一个看向的目标角色:/// <summary>/// 目标角色/// </summary>public Transform target;也必须限制相机的上下仰角角度:/// <summary>/// 最小仰角度/// </summary&g

2021-07-28 14:23:45 749

原创 unity(角色查看)RTT将模型渲染到UI上面

最近想了想角色选择界面是用的模型直接摆上去的还是用的纹理,然后我就想到了用相机渲染到的纹理附上去康康,想不到还能这样:具体的步骤:拿一张RenderTexture,将其赋值给模型渲染专用摄像机-渲染,再将其赋给ui的rawImage就可以了:代码挺简单的: public Camera camera; public RawImage rwimg; public GameObject player; RenderTexture rentex; // Start is ca

2021-07-14 12:24:56 842

原创 unityshader 消融效果

代码,讲解都在注释上面了:冯乐乐的《unity shader 入门精要》:相关知识:透明度阴影计算普通光照法线贴图Properties { _BurnAmount("BurnAmount",Range(0,1)) = 0 _LineWidth("LineWidth",Range(0,0.2)) = 0.1 _MainTex("MainTex",2D) = "white"{} _BumpMap("BumpMap",2D) = "white"{} _BumpFirstCo

2021-07-03 16:05:37 160

原创 unityshader法线,纹理遮罩

法线贴图可以让低模看起来像是高模一样,具体的实现原理,是改变了光照,呈现出凹凸度:下图中为法线贴图根据光照模型来进行更改:首先我们需要声明法线贴图纹理和法线的凹凸度:_BumpMap("bumpMap",2D) = "bump"{}_BumpScale("BumpScale",Float) = 1.0sampler2D _BumpMap;float4 _BumpMap_ST;float _BumpScale;输入我们需要添加一个切线和法线:struct Input{ float

2021-06-25 17:32:01 451

转载 FSM有限状态机

FSM ,有限状态机,一个可以枚举出有限个状态,并且这些状态在特定条件下是能够来回切换的。在游戏中经常看到的一些AI,如敌人巡逻,巡逻过程中看到玩家就追击,追上了就攻击,追不上并且有了一定的距离就返回去继续巡逻。Unity中的Animator就是一个FSM了,不过Animator是控制角色动画播放的,什么状态的时候播放什么动画。而这里写的FSM是控制角色AI的,什么状态就做什么事。FSM 跟 Switch case做的事一样一样,类比于 Switch 就是将case中的逻辑封装到各个State中了。

2021-06-24 10:36:00 755

原创 普通光照模型:unityshader

我们都知道物体表面的光照是由:自发光+镜面光(高光)+环境光+漫反射得出来的:环境光:光照系数*环境光颜色Ambient=K*GlobalAmbient;漫反射:Diffuse=K*LightColor*max(dot(N,L),0) ;反射光线:两倍的水平投影减去入射光线,得到反射光线镜面反射:k为高光系数Specular=LightColor*pow(max(dot(N*R),0),K);自发光:那就直接是纹理+uv了:EmissIve=K;嗯,就这些了:代码:Shad

2021-06-16 21:02:28 137

原创 基于unity的计时器(协程)

今天参考着我们项目里面的egret传奇的定时器,写了一个unity的定时器工具类:测试了一下,没发现问题,就直接分享一下:了解了可省略参数写法:(以前还不知道QAQ)params object[] argeusing System;using System.Collections;using System.Collections.Generic;using System.Linq;using UnityEngine;public struct timerData { publi

2021-06-15 16:18:30 913 4

原创 基于unityshader的屏幕模糊处理:

首先我们都知道,我们所看见的都是摄像机将画面投影到视口纹理上面,也就是一张RenderTexture,四舍五入就是一张图,那么我们就只需要对这张图进行模糊处理就可以了:而模糊处理我们就需要用到对图片像素进行操作,那么用shader最好了:模糊处理算法而我用的是高斯模糊:原理:取当前像素的周围像素进行颜色混合(根据uv坐标偏移拿到对应周围的像素):而高斯模糊进行的颜色混合比例:从周围像素点取相应比例的颜色进行叠加(也叫滤波器)好了,基本上可以上代码了:首先拿到改像素点在图片上对应的坐标fl

2021-06-09 17:32:07 555 1

原创 unity利用高阶贝塞尔曲线进行的轨道移动

之前想做一个按照固定的路线进行移动的demo,就想到了路径的曲线,然后就想到了贝塞尔曲线:先上贝塞尔通用公式:

2021-05-12 16:12:23 1562 3

原创 fairygui简单使用(unity)

本文主要是引导怎么从fairygui页面ui编辑到unity的过程,如果想详细的那种,最好下载一个官方案例,里面都有详细的教程。不过这个对于新手来说还是挺好的(因为我刚开始以为是自己创建代码,自己写)先去官网下载一个gui编辑器:这是API函数:创建一个组件:这个组件就是一个界面ui开始拼凑界面,所需要的操作需要到官网去查使用方法:然后将需要用到的东西设置为导出:会在ui右下角出现一个红色小点点设置为导出后,点击文件的发布设置:发布界面更具自己需求来进行发布:打包发布,最好发布到Un

2021-04-07 21:14:31 5077 1

转载 mmd导入的桌面精灵:unity(转载)

之前想做一个桌面精灵,就上网查了一下。发现各位前辈真强大。我就搬运搬运:首先我先在网上找到了一下模型和舞蹈动作数据,mmd的。网站是:mmd模型和动作数据然后我们再去下载一个mmd转换成fbx的unity插件:MMD4Mecanim导入插件到工程:再从网上下载mmd模型(.pmx)和动作数据(.vmd),导入工程点击pmx模型:勾选并应用:再把vmd动作数据拖拽到下图中vmd一栏中:点击process然后就开始转换了。然后我们就来看看这个大佬的文章:设置窗体透明如果你想修改窗体

2021-03-09 15:28:10 550

原创 序列化和反序列化(简单)(c++)

序列化和反序列化(简单)(c++)最近看了看序列化相关的,动手试着做了一下。虽然感觉自己很菜,但还是忍不住分享。由此记录成长:什么事序列化呢:(我的理解):将数据转换成字节流存进内存:序列化从指定内存取出字节流,再把字节流转换成数据:反序列化那我们需要准备申请一块内存空间:char* m_arr;m_arr = new char[256];我们取数据就需要精确的从内存里面找到该数据所在内存空间的下标:利用指针偏移所以我们需要一个变量记录指针偏移量:int m_index = 0;比

2021-03-09 14:40:31 879 1

原创 unity动画Animation和Animator的理解--基础

Animation动画:我感觉这个动画编辑器并没有Animator好用,但是向我们这种程序员小白,只会程序的,如果想自己做一点东西,只能网上找资源,大部分都是旧版的资源,带的都是Animation动画,所以这里先记录一下Animation的使用心得:这是unity中一个资源(一个角色),自带攻击,站立,行走,奔跑等的动作,这就需要将我们要用到的动画资源放到Animations容器中,而Animation一栏则是默认播放的动画;Animation:默认开始播放的动画Size:动画组Play aut

2020-07-11 14:08:32 3731

原创 Playmaker:一些学习的理解

由于是第一次写博客,可能有些不足,还请大佬们指出:在资源商店里面搜索playmaker,点击下载插件: 如果导入后出现了这个问题:就打开更新的脚本:PlayMakerAutoUpdater,将:if (NeedsUpdate())里面的代码全部注释掉安装完后:会出现一个playmaker选项卡:,选择第一个playmaker editor 打开编辑器状态机fsm简要介绍:切换状态:由状态1切换到状态2:需要添加过度:finished再添加事件:选择过度到下

2020-07-08 10:40:59 1066

空空如也

空空如也

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

TA关注的人

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