unity开发实战
文章平均质量分 81
Zander_zhang
这个作者很懒,什么都没留下…
展开
-
Unity中详细描述用于ScrollView的Mask和RectMask2D的具体原理以及它们是如何对DrawCall产生影响
在Unity中,Mask和RectMask2D都是用于限制UI元素渲染区域的组件,常常用于ScrollView等需要剪裁内容的场景,但它们的工作原理和对Draw Call的影响是不同的。原创 2024-02-22 15:06:10 · 581 阅读 · 0 评论 -
Unity 常见的图像压缩格式优缺点
全称DirectX Texture Compression Format,是由Nvidia开发的一种在计算机图形绘制中常见的纹理压缩格式,常见于Windows平台的游戏中,包括DXT1,DXT3和DXT5。全称 Adaptive Scalable Texture Compression(ASTC)是由ARM开发的一种高效的纹理压缩格式,是一种更加先进的压缩格式,支持各种纹理类型和细节级别。体积小,节省空间:通过对RGBA通道进行压缩,相较于未压缩的RGBA格式,可以大大降低文件的体积,节省存储空间。原创 2024-01-31 20:00:00 · 2182 阅读 · 0 评论 -
Unity 属性雷达图效果
最终效果图:游戏中难免会展示英雄的各个属性值,雷达图是比较简洁直观并且符合用户习惯的展示方式之一。3D中生成的任何面都是由一个个三角形组成的,要实现图中的效果我们需要在程序中动态生成正五边形面片,我们需要六个顶点(包含中心点)。设中心点O为(0,0),经过x轴的顶点A为(45,0),那么如何根据确定这五个顶点呢?正五边形的顶点必定都在一个圆上,已知半径为R,其余的顶点都是OA向量经转载 2016-12-15 11:21:26 · 9029 阅读 · 2 评论 -
Unity Shader学习笔记(二)简单的漫反射
// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'Shader "Lesson/SimpleDiffuse"{ Properties { _Diffuse("原创 2016-12-21 11:19:03 · 745 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(十二) 战斗AI的控制
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。这节课我们接着来讲AI的相关部分:战斗AI。 游戏中要进行战斗,就需要让AI会攻击,首先在一定范围内如果有足够的单位则进行攻击,在AI文件夹中创建一个StrikeAi的脚本,编辑如下:using UnityEngine;using System.Collections;public class Str原创 2016-12-21 10:42:38 · 4373 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(十一) 单位生产
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。在 游戏中我们要建筑也能生产无人机,这一章我们就来实现一下具体操作。 首先在Actions文件夹下创建CreateUnitAction脚本并编辑,如下:using UnityEngine;using System.Collections;public class CreateUnitAction : Actio原创 2016-12-15 10:44:16 · 2117 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(八) HUD的使用 单位信息显示
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。这一章我们将处理单位信息在UI上的具体显示。 首先为了显示一些信息,我们需要新创建一个脚本来控制信息面板,所以在HUD文件夹下创建一个InfoManager的脚本,如下using UnityEngine;using UnityEngine.UI;using System.Collections;public原创 2016-12-09 11:34:06 · 3262 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(八) HUD的使用 小地图显示
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。这一章我们讲处理HUD的显示与隐藏,首先我们找到在第一章所提供的下载链接中找到Resources—》Content3中找到HUD.Unitypackage包,把它导入到我们的项目包中。这时我们会发现在Prefabs文件夹中多了一个HUD预设。我们把HUD预设拖到场景中,运行后如下图:现在拥有了带当前区域的小地图,用原创 2016-12-08 14:54:23 · 3438 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(七) 信息显示
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。 现在我们需要知道单位属于谁,是玩家1还是玩家2,以及他们的颜色。每个单位都应该与此信息标注。首先在Scripts文件夹中创建Player脚本,编写脚本using UnityEngine;using System.Collections.Generic;public class Player : MonoBehaviou原创 2016-12-07 12:01:52 · 2115 阅读 · 0 评论 -
Unity中使用委托 代理 实现敌人自动检测目标并攻击
假如有一个类控制着游戏中某个关卡的敌人。所有敌人都有一个特点:只要敌人发现玩家了,它就会追赶玩家。最重要的是其他敌人会被通知到玩家的位置,并且也开始追赶玩家。所以实现这个类应该向下面这样写。using UnityEngine;using System.Collections; public class ReactiveEnemy : MonoBehaviour{转载 2016-12-15 17:53:27 · 4950 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(十三) 伤害更新信息显示、销毁单位、爆炸效果
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。今天我们来讲游戏的最后部分:伤害更新信息显示、销毁单位、爆炸效果。上一章我们的单位能相互攻击了,但是还不能刷新数据,这里我们将修改脚本使选中的时候能刷新数据,找到ShowUnitInfo脚本,在其顶部声明一个bool变量,用来确定是否显示数据,编辑如下:using UnityEngine;using System.Col原创 2016-12-22 14:05:09 · 1971 阅读 · 0 评论 -
Unity中防止多个客户端同时打开
大家好,我是Zander。 在游戏开发中,我们通常会为了防止用户同时打开多个端口,进行一些处理。大概的逻辑就是,首先判断有没有端口已经打开,如果有,则关闭将要打开的端口,如果没有,则打开端口。这里只是在Window下进行的操作,下面是具体实现:using UnityEngine;#if UNITY_STANDALONE_WINusing System;using System原创 2016-12-22 15:02:14 · 2514 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(十) AiController
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。这节课我们开讲AI的相关部分。在游戏中,游戏AI有行为树,决策树、状态机等可选。我们将使用基本的等待队列,AI的每次决策都会返回一个权重,然后根据这个值来执行相应功能,这里只需要考虑两件事,是否值得做,怎么做。 首先,在Scripts文件夹下创建一个新的文件夹AI,并创建两个脚本,AiBehaviour原创 2016-12-19 11:10:05 · 4635 阅读 · 1 评论 -
Unity Shader学习笔记(四) 水气泡 Shader的实现
大家好,我是Zander。最近正在学习Shader,同时也在研究ShadowGun里面的一些渲染,其中有一个场景中有一个水缸气泡的效果感觉挺好,于是拿来学习一下。如图:原理很简单,需要2个层,然后通过图的UV动画来实现视觉效果。具体实现如下:Shader "Custom/Scroll2LayersAditive-addtiveBlend" {Properties { _MainTex (原创 2016-12-28 11:40:08 · 8295 阅读 · 0 评论 -
Unity Shader学习笔记(五)
ShaderLab中属性的类型和CG中变量的类型之间的匹配关系如图: uniform关键字:uniform fixed4 _Color; uniform 关键字是CG中修饰变量和参数的一种修饰词,它仅仅用于提供一些关于该变量的初始值是如何指定和存储的相关信息(这和其他一些图像编程接口中的uniform关键词的作用不太一样)。在UnityShader中,uni原创 2016-12-29 11:17:41 · 3864 阅读 · 2 评论 -
Unity实战 RTS3D即时战略游戏开发(十一) 建造AI、生产AI
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。这节课我们接着来讲AI的相关部分(建造AI、生产AI)。Ai 要知道如何建造建筑,在拥有足够的钱和无人机就可以创建。例如没有建筑时就应该建造一个,首先进入Scripts中的AI文件夹创建一个CreateBaseAI的脚本,using UnityEngine;using System.Collections;publi原创 2016-12-20 10:32:40 · 3449 阅读 · 0 评论 -
Unity中如果去掉脚本的勾选框
今天在做项目的时候,突然发现物体上所挂脚本的勾选框突然不见了,如图:这是什么原因呢,自己在网上找了一下,原来是新写的脚本中没有定义Start、Update等MonoBehaviour的方法,后来自己在新写的脚本中,重新添加了一个Start方法,果然,勾选框又回来了原创 2016-12-20 10:47:14 · 2730 阅读 · 0 评论 -
UnityShader学习笔记(六) 漫反射着色
大家好,我是Zander。今天我们来学习一下漫反射着色器。任何优秀的着色器开始总会依赖于一个基础的漫反射组件或者光照模型。因此从漫反射部分开始着色器的编写是非常有意义的。Baidu百科 漫反射(diffuse)是指光线被粗糙表面无规则地向各个方向反射的现象。当一束平行光触及光滑物体表面时,光线则发生规律性反射,反射后的光线也相互平行,这种规律性反射称为光的单向反射或镜面反射。但物体的原创 2017-01-10 16:35:07 · 1707 阅读 · 0 评论 -
Unity3D中如何计算场景中的三角面和顶点数
在做游戏开发时,场景中的三角面和顶点数影响着运行效率,尤其是在手机平台上,实时的知道场景中的各项指标,对性能优化来说至关重要,下面我们来实现一个小功能,来实时计算场景中的三角面和顶点数; 如果要知道场景中的三角面和顶点数,首先我们要得到场景中所有的物体,如下:GameObject[] ob = FindObjectsOfType(typeof(GameObject)) as Gam原创 2017-01-24 14:50:29 · 9203 阅读 · 2 评论 -
Unity实战 RTS3D即时战略游戏开发(六) Navigation Mesh 自动寻路
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。上一章我们创建了鼠标管理控制器,接下来我们要为单位添加寻路功能。为了能让单位在地图上移动,我们需要知道在哪里点击了鼠标右键,首先要创建新的交互方式,在Interactions文件夹下创建一个RightClickNavigation脚本,暂时不添加方法,我们打开RtsManager脚本,为了能检测到在哪里点击了鼠标右键,首先我们需要原创 2016-12-06 17:05:46 · 5199 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(五) 鼠标管理器
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。上一章我们对单位选中时进行了处理,接下来我们来处理 一下输入控制。现在我简单的来说一下鼠标控制管理器的作用,它用于检测鼠标点击,特别是在3D空间内的点击物体。如果检测到点击交互我们就调用之前写好的Select函数,取消选择时我们就会调用Deselect 函数,此外当按下Shift键时还能处理多选功能,下面我们来实现一下这些原创 2016-12-06 16:16:03 · 3056 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(四)
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。上一章我们添加了突出显示玩家的状态显示,这节课我们来处理一下单位被选中或取消时的效果,通用的办法是使脚本处理每个可交互的对象,但是我们不想让上百个对象每帧检测自己是否被选中,为了提高效率,我们新建 一个交互管理器。 首先,在Scripts文件夹下新建一个Interactive脚本,接下来创建一个Interactions原创 2016-12-05 16:25:09 · 6143 阅读 · 0 评论 -
unity中FPS计算
直接代码using UnityEngine;using System.Collections;using System.Collections.Generic;public class FramesPerSecond : MonoBehaviour { //GUI public GUISkin guiStyle; public float updateInterval =原创 2016-04-15 11:53:03 · 1156 阅读 · 0 评论 -
Unity3d在安卓android的更新(APK覆盖)
其实这并没什么技术难点,也不是完美的热更新方案,只能说是退而求其次的一个方法。起因主要是因为公司几个U3D项目在立项之初都没有能做好热更新的规化,导致现在要去做U3D的热更新非常难,并且项目已处于中后期,大部分的方案不管是用反射,还是用Lua,或是jsbinding,都需要把项目大部分代码结构推倒重来,这是非常不现实的。于是退而求其次,选择还是直接用最小APK来更新游戏。也许很多人转载 2016-01-07 11:19:25 · 3762 阅读 · 0 评论 -
unity中可以使一个私有的变量在Inspector面板中显示出来 和 SerializeField的使用
[HideInInspector]可以使一个公有的变量在Inspector面板中隐藏起来[SerializeField]可以使一个私有的变量在Inspector面板中显示出来原创 2015-04-08 09:37:10 · 8744 阅读 · 0 评论 -
Oculus Rift DK2的组装
购买DK2都会带有几页安装说明,如果遗失了可以点击上面的连接,点击Documentation下载DK2_Quick_Start_Guide.pdf打印。这里简单翻译下组装手册上的步骤:组装前:首先打开盒子,确认DK2的部件是否完整,并认真阅读安全与健康警告。1. 安装驱动(就是之前的教程)2. 设置DK2头部设备:打开前面的盖子(Cover)确认USB和原创 2015-03-23 18:00:31 · 1917 阅读 · 0 评论 -
Unity之如何从AssetBundles加载资源
加载和卸载资源包 (AssetBundle) 中的对象使用下载的数据构建资源包 (AssetBundle) 对象后,可以使用三种不同的方法加载其中包含的对象: AssetBundle.Load 会将其名称标识符用作参数加载对象。其名称即工程 (Project) 视图中显示的名称。可选择将对象类型作为参数传递到 Load 类函数,确保加载的是特定类型的对象。AssetBun翻译 2015-03-10 11:57:41 · 878 阅读 · 0 评论 -
Shader之Unity中如果使模型有弯曲效果
代码如下 Shader "Custom/Curved" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _QOffset ("Offset", Vector) = (0,0,0,0) _Brightness ("Brightness", Float) = 0.0 _Dist ("Distance",原创 2015-03-10 10:20:27 · 10736 阅读 · 2 评论 -
Oculus Rift DK2 安装所需电脑配置
系统支持:目前使用的SDK0.4支持windows7,windows8,windows8.1,Mac(10.8,10.9);硬件配置:官方给的标准配置为2.0+GHz以上CPU,2GB内存,兼容Direct3D10或者OpenGL3的显卡(主流显卡都没问题)。其他要求:正确安装最新的显卡驱动,运行现阶段大型3d游戏所需的运行库,例如DirecX9.0c,Visual C++ 2008运行库原创 2015-03-19 16:06:13 · 2895 阅读 · 0 评论 -
unity3d 摄像机抖动特效
git@code.csdn.net:snippets/622963.git原创 2015-03-19 09:44:46 · 3126 阅读 · 0 评论 -
unity3d KeyCode各键值说明
KeyCode :KeyCode是由Event.keyCode返回的。这些直接映射到键盘上的物理键。 值 对应键 Backspace 退格键 Delete Delete键 Tab TabTab键 Clear Clear键 Return 回车键 Pause 暂停键 Escape ESC键 Space转载 2016-06-03 17:28:30 · 635 阅读 · 0 评论 -
在Unity中接入Xbox360手柄
当我们调Input.GetAxis("Horizontal"),我们调了什么Unity中所有关于输入的设置都在Edit -> Project Setting -> Input里面,点开之后,Inspector面板中就会显示当前的输入设置。 几个重要选项的含义有: GravityHow fast will the input recente转载 2016-06-14 10:59:01 · 912 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(三)
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。上一章我们为场景添加了Manager,以及玩家初始化信息。下面我们来完成以下功能:导航网格的设置、摄像机的操控、以及制作单位预设。 在 游戏中,我们需要限制玩家的可到达区域,不能到山上或水里移动,这个功能我们可以采用导航就可以完成。在Unity中,导航网格在地形上比较明显,它能辨识哪些路面可走,哪些不可走,AI可以原创 2016-12-02 14:56:59 · 6106 阅读 · 1 评论 -
Unity实战 RTS3D即时战略游戏开发(十) 可建造地点标示
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。这一节我们来讲在地图上哪些区域可以建造建筑,哪些地方不可以。 建筑在地形上跟随鼠标,但是并没有标记指示在哪里可以建造,我们希望,如果不能建造就显示红色,如果能建造就显示绿色。 首先在RTSManager中添加一个特别的函数 ,进入RTSManager并编辑这个脚本,添加一个新的方法:public bool Is原创 2016-12-12 15:28:17 · 4462 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(九) 行为管理器 Action的使用
大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。游戏中我们需要一个指令系统来处理不同的指令,每个单位都应该有行动指令,移动或者建造等,所以这一节我们来实现一下HUD面板上按钮的功能。 首先,在Scripts文件夹创建一个ActionManager的脚本并编译它。这里我们要用到Action委托,它是一个可以作为变量并传入形参的方法using UnityEngine;原创 2016-12-12 14:06:12 · 2665 阅读 · 1 评论 -
Unity实战 RTS3D即时战略游戏开发(二)
大家好,我是Zander,我们接着来开发Rts3D即时战略性游戏,本次所需要的资源大家可以在上篇文章所给的链接中下载。 首先、我们要在下载好的工程包中找到Scenes文件夹并打开RTSMap场景。 然后 、我们来创建玩家和敌人的出生点位置,如图所示,在Map中创建两个空物体,分别取名为Player1Start,Player2Start,为了方便我们看到已定义好的Player原创 2016-12-01 14:17:25 · 8586 阅读 · 0 评论 -
Unity实战 RTS3D即时战略游戏开发(一)
大家好,我叫张军伟,很乐意在这讲授一个关于用Unity创建3D即时战略游戏的开发,在这个游戏中,你能创建属于自己的即时战略游戏,包括完整的:爆炸、敌人AI、单位、建筑地形、导航AI、战斗、资源还有更多,如果你想不费劲的就做一个,或者你知道捷径做个像样的,那么本次开发就能让你很轻松的创建、启动并运行属于你自己的RTS游戏。游戏中的功能大概介绍一下:1、玩家控制、以及界面实时显示2原创 2016-11-30 16:25:38 · 13094 阅读 · 0 评论 -
UGUI Text换行问题
有人说UGUI的Text不能换行,有人说可以通过\n换行,并附上了整条字符串。 其实他们根本就不在一个频道!! 这么说吧,通过代码直接给Text组件的text赋值"XXXX\nXXXX"绝对是可以换行效果的;然而,在Inspector面板的Text组件里输入同样的内容就不行,哪怕手拙复制进去都不对,这尼玛什么鬼!? 后来发现,原来它把\n偷偷变成了\\n了,所以我们只要把它变回来就行啦原创 2016-11-29 11:23:46 · 37032 阅读 · 6 评论 -
ShareREC for Unity3D用于Unity3D平台上的屏幕录制。
1、集成步骤1、下载最新版本ShareREC for Unity3D的SDK,解压以后可以找到ShareREC的unitypackage。2、双击之并将其中的文件导入您的项目。3、进入目录plugin/ShareRec,选择其中的ShareRec脚本,将它拖到游戏的MainCamera下,并填写上您的AppKey、AppSecret,并进行一些基本的配置,如下图:原创 2016-10-31 17:00:42 · 5551 阅读 · 1 评论 -
unity 射击时屏幕震动效果
using UnityEngine;using System.Collections;public class CameraShake : MonoBehaviour { public static bool startShake = false; //camera是否开始震动 public static float seconds = 0f; //震动持续秒数 publi原创 2016-11-11 11:28:35 · 3215 阅读 · 0 评论