Unity
Cco丶
学海无涯
展开
-
Unity Package Manager 使用
git push -u origin master (提交代码到远程仓库,如果是默认主分支,也可直接使用:git push)package.json内容:可参考官方的,name 和 version 为必需字段,依赖的包 本地要有。git pull (拉取线上代码,一般为多人开发时使用,如果个人开发直接提交即可,命令可省略)后续有更新的话,修改版本号1.0.0 --> 1.0.1,git 提交到仓库。仓库创建之后的首次 提交,需要输入账户名 和密码(按照提示输入命令)在这里 就可以更新到最新的。原创 2023-06-06 21:03:43 · 847 阅读 · 0 评论 -
Unity 制作抖音同款 罗马时钟
这个罗马时钟 好像出来好久了在某音上,刚看到 觉得很 好玩,所以自己就想着实现一下 效果,大概用了四个小时吧。 下面直接上图先说一下制作思路:1. 文本的放置位置。2.时间的获取 和校正。 3. Text随着时间的刷新 而刷新位置主要思路就这些,然后就是 一些动画 效果。刚开始功能出来的时候,是没有 旋转那个动画的,看上去 很low。。。后面加了个 补间动画。核心代码:拿月份 来说,下面 是初始化代码,就是 位置的放置。 private void InitMonthes() .原创 2020-06-06 09:29:11 · 1170 阅读 · 0 评论 -
Unity可寻址系统--Addressable AssetSystem
今天是2020年的第一天,祝大家新年快乐。前些时间看到Unity官方推得 可寻址系统Addressable AssetSystem,新的资源管理加载系统。据官方说以后Unity的资源加载模块重心将会放到该系统上,又是一个亲儿子。这几天抽时间看了一下,其原理也是在AB包的基础上进行了一层高级的封装。之前 我们游戏开发过程中,需要自己去根据游戏写一套自己的资源管理加载系统,这一块牵扯到AssetB...原创 2020-01-01 20:38:49 · 4818 阅读 · 0 评论 -
InjectFix 代码热更
InjectFix 是腾讯最近刚开源的新的热更方案,XLua的升级版。无需写Lua代码。可以直接在Unity工程上修改C#即可更新,老项目无需修改原有代码即可使用。符合苹果热更新条款。下载地址:https://github.com/Tencent/InjectFix下载解压后,找到VSProj 文件夹下的打开编辑,修改UNITY_HOME变量的值修改为指向本机unity安装目录...原创 2019-11-09 11:21:43 · 6244 阅读 · 2 评论 -
Unity灯光渲染之Shadow
一般我们在烘焙场景的时候,对于那些不动的物体,我们会勾选上Static,然后灯光模式改为Bake,进行场景烘焙,这样Unity就会把光照信息自动计算到光照贴图中,贴到物体上去,可以减少实时计算的效率,节省性能。但是对于一些移动的物体,就没法显示出阴影效果了。移动静态物体,阴影还是在原地,但是动态物体却没有阴影。这个时候我们可以将灯光模式修改为mix 模式,场景内的静态对象会被烘焙GI拿...原创 2019-04-08 15:18:26 · 1608 阅读 · 0 评论 -
Unity灯光渲染之光照探针
Light Probe Group 灯光探针组右键Creat-->Light-->Light Probe Group选中的为蓝色,有多个灯光探针组成。每一个灯光探针记录该位置的光照信息正常情况下,立方体进入不同颜色区域,两个侧面会稍微有颜色反色,呈现黄色或者蓝色,同时进入阴影区域,也会受到阴影影响,效果如下:如果采用实时光照,就会出现该效果,此时...原创 2019-04-08 17:10:13 · 3578 阅读 · 0 评论 -
Unity屏幕后处理参数介绍
导入Unity提供的后处理资源包,PostProcessing 资源包,在相机上添加ProcessingBehaviour脚本。通过编辑对应的ProcessingProfile文件来实现相应的效果。Fog: 雾特效Antialiasing:抗锯齿Ambient Occlusion:环境光遮蔽ScreenSpace Reflection :屏幕空间反射Depth Of Fil...原创 2019-04-08 18:38:50 · 1978 阅读 · 0 评论 -
Unity批处理
Unity的批处理分为动态批处理和静态批处理。Unity在渲染物体的时候,通过CPU像GPU发送渲染命令,让GPU来完成物体的渲染,而每一个渲染命令就是一个DrawCall。我们也知道DrawCall越高,游戏就会越卡,为了提高性能,我们可以采取批处理。将具有相同材质的物体,通过一个渲染命令就行渲染。就不会每次都要发送一个渲染命令。我们要注意只有拥有相同材质的物体才可以进行批处理,因此...原创 2019-04-08 19:00:55 · 1017 阅读 · 0 评论 -
射击类游戏--射击辅助线的实现
最近在项目中碰到一个问题,炮台再射击物体的时候,要生成一个炮台和目标的辅助线。类似于捕鱼类游戏,在锁定目标的情况下,生成的辅助线。因为项目是3D的,所以在生成这个辅助线的时候,思考了一个下午,才得以实现。效果如下图:移动的Cube为锁定的目标,不懂得Cube为射击点。小球 为辅助线。通过计算射击点和目标的距离,来计算得到应该生成的小球个数,每次改变物体的位置,重新计算小球个数,少的...原创 2019-05-09 20:46:49 · 1941 阅读 · 0 评论 -
Unity灯光渲染之自发光材质
在unity里面有一种材质,勾选上Emission,可以让物体自身发光。可以通过这种方式来给场景打灯光。HDR模式可以让同一种颜色更加鲜艳明亮通过一个小场景来看一下自发光材质烘焙的场景,创建两个Plane,创建两个自发光材质,关闭场景中天空盒和平行光为了让自发光材质能影响场景中的物体,将场景中物体选为static,然后烘焙。1.采用新版ProgressiveCPU模式烘焙...原创 2019-04-08 14:19:33 · 10028 阅读 · 2 评论 -
Unity灯光渲染之LightType
Unity中的光源分为:DirectionalLight,PointLight,SpotLight,AreaLight。DirectionalLight:平行光Color:灯光颜色Instensity:灯光强度IndirectMultiplier:间接光强度ShodowType:是否开启阴影,以及阴影类型,软阴影效果比硬阴影效果好一点,但是耗费性能,硬阴影的锯齿强度比较明显...原创 2019-04-06 22:03:29 · 1996 阅读 · 0 评论 -
Unity灯光渲染之SkyBox
天空盒的制作:我们先找一张高清的图,导入unity,选中把类型设置为Cube,新建一个材质球,shader选择然后将我们的天空和图片素材拖进来,这样一个天空盒就制作成功了TintColor:可以通过改变该颜色,来改变天空盒整体色调。Exposure:曝光度,正常为1,越大越来越亮。Rotation: 旋转天空盒将我们制作好的天空盒拖给天空,或者在lighti...原创 2019-04-04 21:08:38 · 1137 阅读 · 0 评论 -
PhotonServer的安装与简单配置使用
PhotonServer 是一款实时Socket服务器,开发起来简单易用,被很多游戏公司采用。今天来讲一下Photon的安装与简单配置以及如何输出日志。1.首先到Photon官网,注册账号,下载ServerSDK。是一个压缩文件,下载完毕解压到对应文件夹,路径不要包含中文。解压之后 如上图所示。启动程序在deploy文件夹中,bin_win64 中PhotonControl.exe...原创 2018-07-15 18:55:25 · 4798 阅读 · 0 评论 -
QQ登录SDK接入
本文是原生安卓SDK接入,对安卓不是很熟悉的话,可以考虑ShareSDK,直接封装好的登录分享SDK,无需在安卓层面架接,只需要在Unity里面调用相应接口即可。1.打开腾讯开放平台找到接入指南。下载移动游戏的sdk2.申请个人APP_ID.需要手持身份证 拍照认证,有点烦。3.下载的SDK包 解压如下有开发者文档,以及相应的jar包。4.创建A...原创 2019-08-26 14:55:44 · 4155 阅读 · 0 评论 -
Unity 获取 不同平台上内存的使用情况 总结
1.PC平台 [StructLayout(LayoutKind.Sequential,Pack =1)] public struct MEMORYSTATUSEX { public uint dwLength; public uint dwMemoryLoad; //系统内存总量 public ulong ull...原创 2019-08-26 15:14:20 · 3580 阅读 · 5 评论 -
GoogleAdMob 广告接入
谷歌广告接入For Unity直接百度进入Admob 网站:https://developers.google.cn/admob/找到for unity根据指南接入,创建 AdMob 帐号,该网站需要翻墙,申请自己的AppID,以及应用中接入的广告ID,广告分为三种:横幅式广告,插入式广告,激励广告。下载Unity 的插件,导入到Unity。在 Unity 编辑器...原创 2019-10-11 10:39:07 · 3167 阅读 · 0 评论 -
Unity使用adb在移动端调试
首先电脑要装有AndroidSDK,在platform-tools 下面有一个adb.exe。手机端要调成开发者模式,打开命令行,输入adb路径\adb.exe connect 手机ip.例如:D:\AndroidSDK\platform-tools\adb.exe connect 127.0.0.1:7555本文使用的是mumu模拟器调试,真机需要Root一下,原理一样。连...原创 2019-05-14 10:03:31 · 6703 阅读 · 0 评论 -
数据持久化路径Application.persistentDataPath
今天突然想到这个路径Application.persistentDataPath,热更的重要路径,该文件夹可读可写,在移动端唯一一个可读写操作的文件夹。移动端可以将本地的资源(资源MD5值配置表)等一些文件放到StreamingAssets文件夹下,通过Copy到persistentDataPath下与服务器的版本文件配置表作比对,完成资源的热更。为什么不在StreamingAsset文件...原创 2019-04-18 19:14:32 · 25447 阅读 · 5 评论 -
Unity正交相机适配
unity的正交相机,在适配的时候默认情况下是高度不变,而宽度会随着屏幕大小进行改变,之前还以为这个要自己去处理,但是测试之后才发现,都已经做好了。如果我们的项目需要高度改变,宽度不变,那么添加代码就可以实现了private void Awake(){ //1334/760 是编辑模式下屏幕宽度和高度 Camera.main.orthographicSize = Came...原创 2019-04-14 15:42:48 · 1998 阅读 · 0 评论 -
UGUI--背包系统
该背包系统是用自带GUI做的一,该背包系统涵盖功能:1.默认背包是没有装备的,B键显示和隐藏背包。2.按下F键 随机捡取装备,并放入背包,捡到相同的装备时,装备数量+1.3.装备可以左键拖拽,在装备栏中换位置。4.鼠标放到装备物品上,显示装备信息。5.在装备上右键 ,出现使用和丢弃装备页面。装备可以选择丢弃数量,丢弃之后的数量同步到装备栏中,当某装备数量为0时,装备...原创 2017-11-06 13:54:29 · 665 阅读 · 2 评论 -
游戏中技能冷却效果
一个小小的游戏中技能冷却效果demo。原创 2017-10-29 14:30:59 · 1761 阅读 · 0 评论 -
Unity中虚拟摇杆的简单实现
本文只是简单的实现了摇杆控制人物的基本移动。核心内容就是将摇杆移动方向传给要控制的对象。代码如下:public class JoyStick : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler{ //joy的起始位置 Vector3 OriginPos; /...原创 2017-12-20 20:26:34 · 1842 阅读 · 2 评论 -
Unity中字体模糊和图片模糊及解决办法
最近在项目中遇到UI字体不清楚的情况,看起来很模糊。在网上也看到了其他人的解决办法:1.把字体的字号改大一些,然后通过R键,等比例缩放Text,来解决。因为字号较小,单位像素较少,导致渲染的时候模糊。采用上面的办法也试过了,但是还是无法解决字体模糊的问题。最后通过修改导入的字体参数才解决这个问题。font size 是我项目中用到的最小字号。Rendering Mode 默认是smooth,我...原创 2018-05-16 17:12:37 · 27165 阅读 · 5 评论 -
Unity中鼠标和键盘同时按下监听实现
最近在项目中做装备信息发送,鼠标左键和左ctrl键同时按下,发送选中的装备信息。一开始以为直接在Update函数中Input.GetKeyDown(KeyCode.LeftControl)&&Input.GetMouseButtonDown(0),结果发现效果不是很好,毕竟两只手按下会有点时间差,导致不是很灵敏。最后想了一个效果还可以的办法,类似于双击,但感觉好像又有点不同...原创 2018-06-05 09:08:15 · 3976 阅读 · 0 评论 -
Unity与Android 环境的配置
用Unity做Android端游戏开发的时候,打包到手机上时电脑上需要配置相应的Android环境变量。主要就是环境变量的配置,容易出错,在这里给大家总结一下配置环境变量的操作。1.首先安装JDK 和AndroidSDK,这个在百度上可以收到很多。2.记得安装的时候保存一下JDK和SDK安装路径,下面会用到。3.安装完毕就是JAVA环境变量的配置了,在桌面 我的电脑上右键属性,高级,环境变量。打...原创 2018-07-11 14:46:27 · 5708 阅读 · 0 评论 -
Unity 发布exe文件,连接不上数据库
最近在写一个配置工具,需要用到MySql数据库,在unity里面功能都调试好了,发布exe 的时侯,报错,有关于dll的错误,解决办法:将其修改为.NET2.0 就可以打包了。但是发布成exe之后,又发现连接不上数据库,与数据库有关的操作,都执行不了。解决办法:把unity文件夹下Unity\Editor\Data\Mono\lib\mono\2.0 中的这三个dll放到项...原创 2018-11-08 15:33:09 · 3245 阅读 · 3 评论 -
Unity中通过代码添加Layer层和Tag层
在导入别人的package包的时候,tag信息和layer信息导不进来。还得手动一个个添加,一个个设置。很是麻烦。在网上看了一下别人写的添加layer层的文章,但是里面的代码已经不适合现在版本的unity了。像雨松MOMO的Unity3D研究院之脚本自动添加tag和Layer。这给unity版本很早了。整合了一下各种版本,测试可以使用,代码如下:场景中的物体的layer 需要用代码去设...原创 2019-02-21 15:50:14 · 5458 阅读 · 0 评论 -
计时器任务管理
在实际游戏开发过程中经常会用到计时器,例如在多少秒以后执行某个任务,游戏中各种弹窗的消失等等事件。每当我们需要用到计时器的时候就去写一个,这样子等工程庞大的时候,非常不利于管理。为了方便管理,我们可以把所有的计时任务统一管理起来。首先 我们需要一个全局的计时任务管理类:public class TimerTaskManager : MonoBehaviour{ ...原创 2019-02-17 15:59:46 · 496 阅读 · 0 评论 -
Unity中的叉乘和点乘
两个向量的点乘,就是我们说的数量级a·b=|a|·|b|cosθ结果是一个标量,如果==0,则两个向量夹角等于90度,垂直关系小于0,则两个向量夹角大于90度大于0,则两个向量夹角小于90度如果cosθ等于-1,则两个向量相反,等于1则两个向量同向如果两个向量a,b均 为单位 向量 ,那么a.b等于向量b在向量a方向上的投影的长度两个向量的叉乘,得到的是...原创 2019-03-06 20:40:54 · 2500 阅读 · 0 评论 -
Unity事件的监听与广播
通过事件来传递消息,降低代码的耦合度。每一个事件码对应一种事件,通过广播事件码,来触发相应的事件事件码通过枚举列举:public enum EventType{ ShowText, //.......}自定义封装含不同参数的委托//携带不同参数个数的委托(系统自带的Action 只有四个参数)public delegate void CallBack(...原创 2019-04-04 19:12:49 · 3072 阅读 · 0 评论 -
Unity手游全面屏适配
最近在打包测试的时候,适配都已经做好了在16:9,18:9的屏幕上也都没什么问题,但是在个别19.5:9 的屏幕上会出现一个很宽的黑边,是因为AndroidManifest.xml中没有开启兼容选项,打开即可。该文件在打过apk包后才会出现,文件位置:工程目录-->Temp-->StagingArea-->AndroidManifest.xml把该文件复制到Assets\...原创 2019-04-07 14:29:49 · 2350 阅读 · 0 评论 -
Unity加载本地资源
之前加载本地电脑文件都是通过www加载,但是新版Unity已经不支持这个API了。看了一下提醒,说是让用UnityWebRequest代替。命名空间同样是NetWorking,整理了一下加载常用资源的方式。1.加载本地文档 IEnumerator LoadFile() { UnityWebRequest request = UnityWebRequest.Get(...原创 2019-04-21 17:58:45 · 9602 阅读 · 14 评论 -
Unity资源热更新
通过把StreamingAssets文件夹下的本地的资源MD5列表文件复制到persistentDataPath文件夹下和服务器上的进行对比,把有变化的资源更新替换到本地persistentDataPath文件夹,游戏在开始的时候,直接检查更新加载相应的资源。StreamingAssets文件夹,可读,不可写,通过使用UnityWebRequest加载该文件夹下资源,其他方式无法加载里面的资源...原创 2019-04-21 18:46:37 · 2823 阅读 · 2 评论 -
Unity和安卓的相互通信
在使用Unity做移动端的时候,肯定离不开与安卓打交道,Unity与安卓相互调用,比如支付SDK,没有提供给Unity直接的SDK,所以需要我们现在安卓端接好,在导给Unity使用,转接过程很头痛对于没有安卓开发基础的人来说。本文实现一个Unity与安卓函数相互调用的例子。之前都是通过Jar包来做的,但是现在AndroidStudio 支持导出AAR包了,而且这也是官方推荐的方式。jar ...原创 2019-04-14 15:13:42 · 4368 阅读 · 3 评论 -
Unity插件NGUI制作血条--HUD的基本使用
一.利用NGUI制作 血条。1.在2d场景中 先拖一个BG进去。然后创建一个 sprite。修改名字为LifeBar.在inspector面板中 uisprite属性值。如下:2.在lifebar下创建一个sprite,用于当做血的显示。属性修改同上。把颜色改为血的颜色。设置一下Anchors如下:3.给lifebar 添加一个UI Slider的脚本。设置...原创 2017-10-24 10:16:28 · 3901 阅读 · 1 评论