![](https://img-blog.csdnimg.cn/20190901151708498.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Unity
雨牧_
这个作者很懒,什么都没留下…
展开
-
Unity shader实现URP下2D图片描边效果
内置管线下2D图片的描边已经有很多文章了,在此实现下URP下的2D图片描边效果。由于代码相对简单,比较好理解,直接贴代码了:Shader "outline"{ Properties { _MainTex("Texture", 2D) = "white" {} _lineWidth("lineWidth",Range(0,10)) = 1 _lineColor("lineColor",Color) = (1,1,1,1) } // -----------------------原创 2021-04-06 21:11:49 · 1966 阅读 · 2 评论 -
解决Unity UGUI滑动组件自动回弹的问题
在我们使用Unity自带的滑动组件(Scroll View)时,有时候在Content下填充了物体之后,滑动会出现回弹的情况,也就是划不到最下边,无法看到最下边的元素,如下图所示原因就在于 填充的物体所占的体积大于了Content的大小。如图所示,红色为Content的大小,而黄色为需要滑动的物体所占的大小。解决方案:可以在Content上添加Content Size Fitter和Layout Group组件,这样可以让Content去根据子元素自适应大小,从而保证正常滑动...原创 2021-03-02 20:08:38 · 2475 阅读 · 0 评论 -
Unity 利用System.Drawing.dll播放GIF 打包之后GIF无法播放问题
当采用了引用System.Drawing.dll来播放GIF时,打包之后可能会出现GIF无法播放的问题,System.Drawing.Image.FromFile()这个方法会报空。原因是引用的dll位置不对,不应该引用当前使用unity的文件位置->Data->Mono->lib->mono->2.0->System.Drawing.dll,而应该用Editor\Data\MonoBleedingEdge\lib\mono\unityjit中的System.Draw原创 2020-12-11 11:25:00 · 1085 阅读 · 6 评论 -
Unity UGUI播放GIF图片(高性能处理方式)
Unity本身现在是不支持GIF的直接播放的,目前网上已经有一些方法可以在UI上播放GIF,例如:https://blog.csdn.net/u013172864/article/details/78054379但是采用此类方法在播放多个GIF的时候会有明显的卡顿,我们可以做一些优化处理,使得性能更好我们就以上边的GIF播放的方法来进行优化,下边是优化过后的版本,大家可以直接自行对比。using UnityEngine;using System.Collections;using Syst原创 2020-12-03 22:59:16 · 4325 阅读 · 7 评论 -
Unity URP中的Single-Pass到底是什么
什么是URP相信大家都已经看过了很多的文章,这里就不再向大家详细解读URP了,只是简单的提一下:大家都知道,一直以来,unity使用的都是一套内置的渲染管线,全部写在引擎的源码里,大家基本不会能改动,所以过去的管线对于开发者来说,是很难进行定制的。而且对unity官方团队而言,应该也有很大负担,因为他们要在一个渲染管线里支持几十种平台,例如PC,主机,手机等,越来越多的平台支持无疑会使这套代码越来越臃肿,很难兼顾效率和效果,所以unity推出了一套新的基于脚本的渲染管线SRP(可编程渲染管线),主要把渲染管原创 2020-11-01 15:36:49 · 3231 阅读 · 1 评论 -
Unity SceneManager.LoadScene之后不能马上SetActiveScene
1原创 2020-10-24 15:17:46 · 5095 阅读 · 2 评论 -
Unity通过脚本实现不规则多边形的碰撞检测
先上效果图可能大家都已经对Polygon Collider 2D这个组件已经非常的熟悉,就是一个判断多边形碰撞的组件,我们可以通过编辑形状大小来实现对不同多边形的碰撞检测。但是如果遇到较为复杂的多边形,我们在调节时就可能会相对困难,例如下边这个复杂的多边形在这里分享一个脚本,可以去识别多边形最边缘的边,把最边缘的边赋值给Polygon Collider 2D,就可以使得Polygon Collider 2D的大小完美贴合多边形的边缘。查找边缘的主要算法就是取到多边形内不共用的边(可以发现只有边缘原创 2020-08-26 21:43:03 · 3454 阅读 · 1 评论 -
Unity使用ShaderGraph轻松实现透明物体投射阴影
话不多说 直接上图直接新建一个:设置如下:大功告成!原创 2020-08-11 23:32:21 · 4790 阅读 · 1 评论 -
unity为什么有的shader材质不能一键转换为默认支持URP的shader
在unity项目中切换为URP之后,可能大部分材质都会变成粉色(错误状态),这时候我们可以点击Edit-Render Pipeline-Universal Render Pipeline下的选项来进行自动转换为支持URP的材质,但是有的时候会出现“xxx material was not upgraded. There's no upgrader to convert xxxx shader to selected pipeline UnityEditor.Rendering.Universal.Uni原创 2020-06-29 11:17:03 · 14440 阅读 · 6 评论 -
解决用unity制作FPS游戏时枪管插入物体中的问题
在我们用unity制作fps游戏时候,经常会遇到枪械插入到别的物体中的问题,如下图所示,可以看到枪管已经插入到了墙中。我们来解决一下这个问题,解决问题的方法就是为枪械添加一个独立的摄像机,下边来看详细操作。可以看到第一人称控制器下边已经有了一个Camera(主摄像机),此时我们再在FirstPersonCharacter下边添加一个摄像机,并且命名为WeaponCamera(武器相机)。然后更改武器的Layer,例如图上所示的AK47,M4,AWP等,把他们的Layer设为Weapons原创 2020-06-08 16:40:24 · 770 阅读 · 0 评论 -
UNITY Visual Effect Graph初体验
在Unite LA 2018上,Visual Effect Graph作为大会主角,一登场便吸引了无数的眼球,这是一种用于在Unity中构建实时视觉效果的工具。该工具使用GPU运行的计算着色器和基于节点的工作流,相比原来的粒子系统,这个工具更系统,可以处理特效的整个生命周期,可以用图形化的方式连接制作。随着unity2019.3版本的出现,Visual Effect Graph结束了previ...原创 2020-04-29 17:14:11 · 3250 阅读 · 0 评论 -
解决unity动画系统中多次按键之后trigger触发多次的问题
在unity动画系统中,例如用trigger控制人物跳跃动画,当你快速按下相应按键时,可能trigger会触发多次,例如:解决方法如下:在ground状态下新增一个名为FSMClearSignals的脚本,代码如下using System.Collections;using System.Collections.Generic;using UnityEngine;pu...原创 2019-10-03 10:43:42 · 7526 阅读 · 3 评论 -
unity巧妙实现ARPG人物控制代码
在这里依然强烈推荐大家可以去看一下傅老师的unity黑暗之魂复刻视频,讲得实在是太好了!!!传送门:https://www.bilibili.com/video/av21513489先来看一下最终实现的效果动画系统用混合树,三种状态站立、行走、跑步的thresho值分别为0、1、2。下边是代码using System.Collections;using Syst...原创 2019-10-02 15:50:09 · 1788 阅读 · 0 评论 -
C#常用设计模式(Unity)——游戏场景的转换——状态模式(State)
此文章原文来源于《设计模式与完美游戏开发》(蔡升达著),笔者只是在学习过程中受益颇多,从而进行了总结,有兴趣的读者可以去阅读原书。1.场景的转换当游戏比较复杂的时候,通常会设计多个场景,让玩家在几个场景之间切换,某一个场景可能是角色在一个大地图上行走,另一个场景则可能是在洞穴探险,这样的设计方式类似于舞台剧,一幕幕的呈现,但对于观众来说,同一时间只能看到演员在某一个场景中的演出。当我们...原创 2019-05-30 19:42:00 · 2975 阅读 · 0 评论 -
Unity代码简单实现物体自动左右移动
效果如下using UnityEngine;using System.Collections;//Add this script to the platform you want to move.//左右移动的平台public class MovingPlatform : MonoBehaviour { //Platform movement speed.平台移动速度 p...原创 2019-07-31 17:19:18 · 15702 阅读 · 6 评论 -
Unity2D判断两个物体碰撞的方向
我们要从Collision2D或者Collision2D的碰撞点,然后根据碰撞点的法线去判断是从那个方向碰撞的private void OnCollisionEnter2D(Collision2D coll){ if (coll.contacts[0].normal.y == -1)//从上方碰撞 { } else i...原创 2019-08-02 11:37:01 · 3743 阅读 · 1 评论 -
超简单的unity游戏热更新方案之xLua(一)——准备工作
第二篇:超简单的unity游戏热更新方案之xLua(二)——Lua虚拟环境搭建第三篇:超简单的unity游戏热更新方案之xLua(三)——真正开始尝试热更新---------------------------------------------------------------------------------------------------学习之前可以先看一下xLua的官方...原创 2019-08-17 19:29:57 · 1394 阅读 · 2 评论 -
超简单的unity游戏热更新方案之xLua(二)——Lua虚拟环境搭建
第一篇:超简单的unity游戏热更新方案之xLua(一)——准备工作第三篇:超简单的unity游戏热更新方案之xLua(三)——真正开始尝试热更新---------------------------------------------------------------------------------------------------找一个地方新建一个文本文档,用来编写Lua代...原创 2019-08-18 10:36:15 · 838 阅读 · 0 评论 -
超简单的unity游戏热更新方案之xLua(三)——真正开始尝试热更新
第一篇:超简单的unity游戏热更新方案之xLua(一)——准备工作第二篇:超简单的unity游戏热更新方案之xLua(二)——Lua虚拟环境搭建---------------------------------------------------------------------------------------------------首先先明确一款商业游戏的开发过程:首先开...原创 2019-08-18 11:08:24 · 1780 阅读 · 0 评论 -
Unity2D简单实现物体跟随鼠标移动并旋转
效果图如下代码如下using System.Collections;using System.Collections.Generic;using UnityEngine;public class FollowMouse : MonoBehaviour { // Use this for initialization void Start () { } //...原创 2019-08-31 16:17:38 · 11555 阅读 · 6 评论 -
UnityTips!这可能是全的unity小贴士合集(不断更新)
1.在 Awake() 和 OnEnable() 之前如果你想在一个实例化的物体身上执行某些操作,只需要在实例化之前通过SetActive(false)禁用即可。就比如说你需要在停用前储存一些活动状态并在实例化之后调用,通过这个操作可以避免你在其他地方应用了改预制体,可能会导致活动状态以外更改。2.改善低帧频动画的简便方法:更改帧时,请给sprite的scale一个小的弹跳。3.使...原创 2019-09-21 10:29:01 · 785 阅读 · 0 评论