
Unity3D
文章平均质量分 63
系统讲解Unity3D的基础知识,带领大家快速入门Unity3D
天地会舵主
从事IT讲师多年,系统讲解Cocos、Unity等知识。目前主要从事golang服务、音视频流媒体领域技术开发
展开
-
Unity中WWW类使用
一:WWW介绍WWW类是Unity网络开发中使用频率非常高的一个工具类,主要提供一般HTTP访问的功能,以及从网络上动态的下载图片,声音,视频资源等等。 目前WWW支持的协议有http://,https://,file://,ftp://,其中file是访问本地文件。WWW支持使用Get和Post方式进行表单的上传。 虽然新版本已经不建议使用了,但是嘛,我还是记录记录。1.1 WWW下载本地StreamingAssets资源当我们本地加载StreamingAssets资源的时候,需要使用WW原创 2021-05-07 19:55:57 · 3688 阅读 · 0 评论 -
UnityWebRequest使用方法
一:Unity网络工具类:Unity原来有个Http访问的工具类WWW,在新版本的Unity中,推出了新的工具类UnityWebRequest,可以代替原来的WWW类。我们之后尽量使用UnityWebRequest进行请求即可。二:简单的Get访问UnityWebRequest包含多个静态方法,可以创建一个UnityWebRequest对象,调用SendWebRequest正式发送请求。在协程返回结果后,需要判断是否有错误,再做处理。 IEnumerator GetText()原创 2021-05-07 19:41:52 · 5821 阅读 · 0 评论 -
unity实现导弹追踪效果
Unity实现导弹追踪效果有很多种方式。我们下面讲解几种常见的实现方式(1)直接实现 分析:导弹追随的时候,走的是抛物线轨迹,使用Slerp其实是可以实现抛物线的,但是我们要时时刻刻修改追随的角度、就是使用切线的方式。就需要我们自己进行实现。可以使用下面的方式进行实现。代码如下:using System.Collections;using UnityEngine;public class Fire : MonoBehaviour{ public GameObject t..原创 2021-04-29 19:19:58 · 4073 阅读 · 0 评论 -
Unity连连看插件制作
十一:连连看插件实践11.1 基础知识需要的技术前提掌握Unity最老的GUI技术,也就是将代码写在OnGUI里面。 使用EditorGUILayout,GUILayout进行布局 使用AssetDatabase进行编辑器资源加载 Asseet窗口创建GUISkin,将练练看的元素按照1---n进行命名(自己的规则,自己匹配即可)设计界面如下所示:上面是棋盘,下面是当前选中的按钮。点击确定的时候,将二维数组存储到一个txt文件之内即可。最终效果如图:存储二维数组到Re..原创 2021-04-24 15:35:51 · 1309 阅读 · 0 评论 -
Unity射线检测整理
Unity射线检测常见的几种应用一:检测单个物体//初始化射线:中心+方向 Ray rayNoraml = new Ray(Vector3.zero,Vector3.up*10); //绘制射线 Debug.DrawRay(transform.position,transform.forward,Color.red,10); if (Input.GetMouseButtonDown(0)) { ...原创 2021-04-22 20:48:31 · 2277 阅读 · 0 评论 -
Unity状态机FSM
Unity状态机FSM一:状态机介绍有限状态机,也称为 FSM(Finite State Machine) ,这些状态是有限的、不重叠的,其在任意时刻都处于有限状态集合中的某一状态。当其获得特定输入时,将从当前状态转换到另一个状态 ,或者仍然保持在当前状态。状态机的应用领域--- 玩家动作控制:比如一个玩家动作较多,我们可以使用状态机进行管理--- UI界面的切换与管理--- 怪物AI的设计二:状态机设计实例我们以案例为基础,设计一个人物有三种状态,在三种状态之间自由切.原创 2021-04-20 16:10:42 · 1918 阅读 · 0 评论 -
Unity AssetBundle详细解析
AssetBundle使用1.1 AssetBundle介绍AssetBundle是将资源使用Unity提供的一种用于存储资源的压缩格式打包后的集合,它可以存储任何一种Unity可以识别的资源,如模型,纹理图,音频,场景等资源。也可以加载开发者自定义的二进制文件。他们的文件类型是.assetbundle或者/.unity3d,他们先前被设计好,很容易就下载到我们的游戏或者场景当中。AssetBundle(简称AB包)是一个资源压缩包,包含模型、贴图、预制体、声音、甚至整个场景,可以在游戏运行原创 2021-04-19 19:48:35 · 7803 阅读 · 0 评论 -
Unity接入QQ登录
打包的时候,参考了以前朋友写的链接 :https://blog.youkuaiyun.com/qq_17583689/article/details/103728495,写得非常好,步骤非常详细。经过测试,能够成功的进行qq授权。现总结一些常见的错误问题如下(1)有些版本要求Unity的包名和安卓的工程包名必须一致,这样打包的时候,会出现两份BuildConfig,导致打包错误。需要在build.gradle末尾添加下面的代码,这样导出的aar包就不会包含BuildConfig文件。afterEvalua原创 2021-04-14 19:33:27 · 891 阅读 · 1 评论 -
Unity UGUI图集专题
一:图集介绍什么是图集:我们可以将其理解为将一系列小图合并为一张大图。使用图集可以减少drawcall,提升效率。 游戏中的图片模型最终是要给到显卡去渲染的,然后CPU通知GPU要开始渲染,这一次通知就是一次Drawcall。当一个UI里面图片非常多的时候,我们可以使用图集技术将其一次性渲染。Unity打包图集的方式有很多种,这里我们讲解三种:(1)一种是使用系统自带的打包工具SpritePacker;(2)使用SpriteAtlas进行打包图集 (3)使用TexturePacker原创 2021-04-14 15:39:12 · 5826 阅读 · 0 评论 -
Unity播放精灵帧动画
Unity2D中,需要大量使用动画,比如2D人物的跳跃,攻击等动作。在Unity3D中,我们有些时候在设计一些UI的时候,也需要使用这种方式来表现一些动画。代码如下所示:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class SpriteAnimation : MonoBehaviour{ private Image原创 2021-04-06 10:53:52 · 492 阅读 · 0 评论 -
Unity读取StreamingAssets目录下文本
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Networking;public class FileUtil{ /// <summary> ///读取StreamingAssets中的文件 /// </summary> /// <param name="path">StreamingAs...原创 2021-03-31 18:18:09 · 6992 阅读 · 0 评论 -
Unity显示帧率FPS
using UnityEngine;using System.Collections;public class FPS : MonoBehaviour{#if CLIENT_DEBUG public float f_UpdateInterval = 0.5F; private float f_LastInterval; private int i_Frames = 0; private float f_Fps; void Start () { f_LastInterval .原创 2020-12-03 10:25:49 · 658 阅读 · 0 评论 -
Unity Shader LOD使用
LOD:Level of Detail作用:unity引擎会根据不同的LOD值在使用不同的SubShaderUnity选择对应的Subshader会从上往下寻找第一个小于等于LOD值的子着色器。一个着色器中会有一到多个SubShader,但是系统每次只会执行一个子着色器,选择子着色器的标准就是根据子着色器所设置的LOD的值来进行选择。如何设置Shader的LOD的值:通过Shader的下面属性进行设置:shader.maximumLOD=500;(1)新建Shader脚本如下:Shader原创 2020-11-25 17:22:01 · 2509 阅读 · 0 评论 -
Unity 实现Image流光效果Shader
参考以下博客内容https://blog.youkuaiyun.com/u013936327/article/details/47053721Unity中,经常实现Image图片闪过流光类似的效果。网上也有很多插件实现这种效果,我参考了上述博客,进行了整理。(1)首先新建一个Shader,命名为Logo.Shader,文件内容如下。该效果是使用顶点和片段着色器实现,对该着色器不了解的可以去进行学习。单纯为了使用的话,直接Copy即可Shader "Custom/LogoFlash"{ Prop转载 2020-11-25 17:08:01 · 3204 阅读 · 0 评论 -
Unity射线与UI碰撞检测
问题产生背景:我们有的时候,需要实现射线与3D UI之间的碰撞,当射线碰撞到3D UI之后(将Canvas设置为World Space),调整到合适的位置。使用LineRender表示射线的直观显示,使用一把枪结合第一人称控制器。当射线瞄准UI的时候,UI添加高亮边框。点击鼠标左键,调用按钮对应的函数。(1)首先,搭建场景,最终如下所示(2)简要说明:给Button添加Mask组件,设置对应的边框,开始的时候enable为false。当射线指向的时候,enable为true。枪口添加ray对象,原创 2020-11-11 20:41:16 · 6140 阅读 · 0 评论 -
Unity UGUI与射线检测冲突问题解决
问题产生的背景:我们在开发一些游戏的时候,比如捕鱼或者射击类游戏,鼠标(手指)点击会发射子弹。但是当我们点击在UI上面的时候,我们不希望触发射线检测,怎么解决,关键代码就是EventSystem.current.IsPointerOverGameObject() 如果当前鼠标在 ui 上返回true 否则返回false。如下代码所示:using UnityEngine;using System.Collections;using UnityEngine.EventSystems;...原创 2020-10-28 16:01:45 · 1221 阅读 · 0 评论 -
Unity高亮插件HighlightingSystem使用
使用步骤 (1)AssetStore搜索HighlightingSystem,将其导入Unity进行使用。 (2)给摄像机挂载脚本Highlighting Renderer组件,无需设置,直接挂载即可。 (3)创建立方体,设计脚本如下。 using HighlightingSystem;public class HightTest : MonoBehaviour { Highlighter h; // Use this for initialization v原创 2020-10-25 15:15:38 · 1609 阅读 · 0 评论 -
.gitignore文件编写规则
一、生成.gitignore文件1、进入项目根目录,打开终端输入 touch .gitignore;2、也可以使用Vi创建该文件。3、在项目第一次创建还未Push的时候,就创建该文件二 、 设置要忽略上传的文件或文件夹1、过滤整个文件夹(Library文件夹)命令:Library/2、过滤具体文件命令:index.html3、过滤指定后缀的文件(过滤后缀为cs的文件),也可以过滤隐藏文件命令:*.cs三、规则介绍1、注释:“ # ” 写在行的开头,表示该行为注释;2、.原创 2020-06-10 16:23:44 · 632 阅读 · 0 评论