Unity3D
文章平均质量分 83
Nervermore
我是ias
展开
-
Unity uGui RawImage 渲染小地图
制作类似 RPG 游戏时,可能会需要显示小地图。小地图的制作一种方式是用另一个摄像机来渲染到一张纹理上,实时显示到UI界面。以Unity 5.0 的 UI 系统为例:在地图正上方放置一个摄像机,设置其 Culling Mask,比如:Ground(地面)、MinimapSign(玩家怪物标识),创建一张 Render Texture,将 Target Texture 属性指向这原创 2015-11-27 09:30:04 · 1187 阅读 · 0 评论 -
NGUI之UICamera控制触摸,鼠标事件
1. UICamera 功能介绍主要包括UI事件的监听,分发,覆盖范围为此Camera渲染的所有GameObject。事件源包括:鼠标,触摸,键盘,手柄。事件包括:悬停,按下/抬起,选中/取消选中,点击,双击,拖拽,释放,文本输入,Tips显示,滚轮滑动,键盘输入。 2. UICamera 实现流程(1)属性 Event Type:包转载 2015-07-08 12:57:58 · 665 阅读 · 0 评论 -
Directional Shadow Details 平行光阴影细节
This page explains shadows from Directional lights in detail.此页面详细介绍了平行光阴影。Directional lights are mostly used as a key light - sunlight or moonlight - in an outdoor game. Viewing distances can转载 2015-07-08 11:19:55 · 522 阅读 · 0 评论 -
有关Unity3D的OnRenderImage()和Blit()的一些问题
大家好!本人最近在使用Unity3D做master阶段的图形学实验平台。在实验过程中会频繁的对多个不同的RenderTexture(以下简称RT)进行一些运算,因此自然会用到Blit这个函数。在实验中,我们遇到了一些非常神奇的问题,希望能跟大家一起讨论一下。Blit(src,dest,mat,pass)函数的作用,按照Unity官方API的说法是将src这个RT用mat这个材质中的某个pass转载 2015-07-07 15:13:36 · 20658 阅读 · 5 评论 -
四元数与欧拉角之间的转换
在3D图形学中,最常用的旋转表示方法便是四元数和欧拉角,比起矩阵来具有节省存储空间和方便插值的优点。本文主要归纳了两种表达方式的转换,计算公式采用3D笛卡尔坐标系: 图1 3D Cartesian coordinate System (from wikipedia) 定义分别为绕Z轴、Y轴、X轴的旋转角度,如果用Tait-Bryan angle表示,分别为Yaw、P转载 2015-07-07 14:31:07 · 3088 阅读 · 0 评论 -
Unity3D调用自己封装的dll
之前总感觉会封装dll组件的都是大牛级别的程序员做的事情,然后供给菜鸟级别的调用。感觉为了保护自己的源码不会被他人知道,然后就封装一个dll供人家调用,那样就觉得很牛, 今天我也尝试摸索了一下,感觉也就那么回事,但只是简单的测试而已,其实会写封装的,封装的好的还是很牛的,哈哈,那让我们也来假装“牛”一次吧!首先要申明的是,unity3d支持C#语言,但只有pro版本才支持.net2.0,其转载 2015-07-07 11:26:53 · 867 阅读 · 0 评论 -
Gizmos画圆(原创)
Gizmos是场景视图里的一个可视化调试工具。在做项目过程中,我们经常会用到它,例如:绘制一条射线等。Unity3D 4.2版本截至,目前只提供了绘制射线,线段,网格球体,实体球体,网格立方体,实体立方体,图标,GUI纹理,以及摄像机线框。如果需要绘制一个圆环还需要自己写代码。using UnityEngine;using System;public class转载 2015-07-06 16:05:37 · 409 阅读 · 0 评论 -
Unity3D自带例子AngryBots的分析
研究一下Unity3d自带的AngryBots项目,了解基本的游戏运行机制: 1. 人物的动作控制逻辑 ***Player对象*** [外形] Player对象里有一个对象具有Skinned Mesh Renderer组件,该组件使用的Mesh名为main_player_lorez。 类似的还有表达武器的,名为main_weapon001的GameObject。 [操作]: (Inpu转载 2015-07-06 18:11:18 · 1134 阅读 · 0 评论 -
关于C#中的弱引用
一:什么是弱引用 了解弱引用之前,先了解一下什么是强引用 例如 : Object obj=new Object(); 就是一个强引用,内存分配一份空间给用以存储Object数据,这块内存有一个首地址,也就是obj所保存的数据,内存分配的空间中不仅仅保存着Object对象信息,还保存着自己(Object本身)被引用的次数。 当一个对象被强引用的形式创建的时候,本身被转载 2015-07-13 11:43:55 · 469 阅读 · 0 评论 -
JS设计模式一:单例模式
单例模式 单例模式也称作为单子模式,更多的也叫做单体模式。为软件设计中较为简单但是最为常用的一种设计模式。 下面是维基百科对单例模式的介绍: 在应用单例模式时,生成单例的类必须保证只有一个实例的存在,很多时候整个系统只需要拥有一个全局对象,才有利于协调系统整体的行为。比如在整个系统的配置文件中,配置数据有一个单例对象进行统一读取和修转载 2015-07-03 17:20:04 · 347 阅读 · 0 评论 -
unity的c#脚本gameObject.SendMessage(string,Object)怎么用求举例
实际上这个函数的目的就是为了调用其他脚本中的函数,也就是交互目的他会在指定的gameobject上所依附的脚本中针对函数名"string"去检索. 找到后调用并传送参数object.(参数可以为空)加入你场景里面有个cube1,cube2你添加了一个脚本C1.cs 在cube1上C2.cs在cube2上C1中有函数 void.check(){};那么在C2中想要使用C1的这转载 2015-07-03 16:16:35 · 1091 阅读 · 0 评论 -
射线碰撞检测+LayerMask的使用
射线:射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 。用途:在unity中射线应用范围比较广, 多用于碰撞检测(如:子弹飞行是否击中目标)、角色移动 等。相关API:1、Ray Camera.main.ScreenPointToRay(Vector3 pos) 返回一条射线Ray从摄像机到屏幕指定一个点转载 2015-07-03 17:02:57 · 524 阅读 · 0 评论 -
关于Unity3d中的LayerMask使用
最近看别人写的Demo,里面这个Linecast字段的LayerMask参数看了半天也没看懂void Update() { // The player is grounded if a linecast to the groundcheck position hits anything on the ground layer. grounded转载 2015-07-03 16:50:27 · 927 阅读 · 0 评论 -
Unity3D 射线指定层获取GameObject 注意
这一篇是纯技术讨论,看过我前面文章的童鞋应该清楚,我的奔跑是靠鼠标响应的,鼠标点到哪就跑到哪,后来又有了界面,麻烦就来了,我的界面竟然能点 穿,我不希望点界面的时候还能点到界面后面的地面上,角色傻不拉几的往那跑,那肿么办呢,总不能每次点击都要判断点击的物体名称吧,那界面多了会累死的, 好在我们有标签和层这两个神器,所以我这里介绍两种方案,都能达到效果。方案一:利用标签(Tag)转载 2015-07-03 12:40:39 · 1750 阅读 · 0 评论 -
Unity3D开发者常见问题20条
1:天空盒有接缝怎么解决?答:在贴图导入设置里设置Wrap Mode为"Clamp".2:DDS格式怎么不显示?答:Unity不支持DDS格式,Unity会将除DDS外的其他格式图片具有为DDS同样的优化.3:Unity如何动态载入外部模型等文件?答:可以使用AssetBundle:http://unity3d.com/support/documentation/Scr转载 2015-07-03 17:11:25 · 488 阅读 · 0 评论 -
Time.realtimeSinceStartup 自游戏开始实时时间
static var realtimeSinceStartup : float Description描述The real time in seconds since the game started (Read Only).以秒计,自游戏开始的实时时间(只读)。In almost all cases you can and should use Time.time转载 2015-07-03 10:35:34 · 4929 阅读 · 0 评论 -
unity——Rigidbody类
游戏对象添加Rigidbody组件后即具备物理属性,当其受力和扭矩影响时可产生更加真实的行为。当操作刚体参数的时候,你应该在FixedUpdate 函数中使用它,物理模拟以离散的时间步执行。FixedUpdate函数在每一步之前被立即调用。使用刚体时应注意,父物体和子物体不应同时具有刚体,也 不应该缩放刚体的父级。 变量:var velocity : Vector3转载 2015-07-02 17:11:58 · 1622 阅读 · 0 评论 -
component之message
主要作用,跨脚本、语言实现功能。Message相关有3条指令:SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的ScriptBroadcastMessage ("函数名",参数,SendMessageOptions) //自身和子Object的ScriptSendMessageUpwards ("函数名",参数,原创 2015-09-25 11:57:19 · 380 阅读 · 0 评论 -
Unity3D开发(七):NGUI之UICamera控制触摸,鼠标事件
1. UICamera 功能介绍主要包括UI事件的监听,分发,覆盖范围为此Camera渲染的所有GameObject。事件源包括:鼠标,触摸,键盘,手柄。事件包括:悬停,按下/抬起,选中/取消选中,点击,双击,拖拽,释放,文本输入,Tips显示,滚轮滑动,键盘输入。 2. UICamera 实现流程(1)属性 Event Type:包转载 2015-09-25 17:27:10 · 1217 阅读 · 0 评论 -
【Unity3d】3d角色换装实现原理及步骤
1、角色模型制作 unity3d支持Skin动画 但是不支持Physique动画 会发现Physique动画在unity里严重变形 因此在模型的骨骼动画的制作上面 要用Skin 当然也可以做成Physique 然后用插件转换一下 3dsmax的插件PhyToSkin 3dsmax中转换之前 为了避免出错 先隐藏骨骼 然后对绑定了骨骼原创 2015-10-30 19:38:05 · 1413 阅读 · 0 评论 -
Strumpy Shader Editor入门教程
对于3D游戏来说,有很多绚丽的效果,都是靠shader(着色器)来实现的。不过很多朋友估计都不会编写shader,阿赵我自己也只是看了个入门,明白了它的原理,很多具体的效果都写不出来的。这次来介绍一个Unity3D的第三方shader编辑器:Strumpy。这个编辑器是完全可视化编辑,使用起来相对简单一点。先来看看我们这次需要做的例子:我们需要使用Strumpy,编辑出这样原创 2015-10-30 18:53:52 · 578 阅读 · 0 评论 -
再详细的介绍一下Unity5的AssetBundle
之前曾经写了一篇博客介绍Unity5的AssetBundle,结果似乎很受关注。不过似乎很多人看了之后都不懂,主要是因为不太明白AssetBundle是什么,它的依赖关系和结构是什么的,就直接想拿代码去用,而导致了很多人说看不懂啊,说什么有错误啊,诸如此类。我想了一下,还是应该从最基础的东西说起,不厌其烦的说,才会省去大家加我QQ问问题了,毕竟平时上班忙,看到一些人把我当翻译词典查,我肯定会态度不原创 2015-10-30 18:32:33 · 671 阅读 · 0 评论 -
Unity3D项目程序加密2——对dll进行混淆
之前一篇文章阿赵已经简单的介绍了怎样把自己写的代码打包成dll动态链接库,然后在Unity3D里面用。那么接下来的事情似乎就很简单了,我们在Unity3D里面写脚本,到最后完成时,把核心的代码剪切出去打包成dll文件再放回项目里面。这样似乎别人就不能直接修改你的代码了。事实真的是这样吗?这里假设我们在Unity3D里面写的代码抽象成这样一个Test类,里面包含了公开和私有的变量,有自带原创 2015-10-30 18:15:01 · 537 阅读 · 0 评论 -
unity3d 关于 NGUI的UIDrawCall 和 U3D的drawcall(原)
关于遮挡关系1.NGUI2.6版本不同的panel用z轴调遮挡关系,一个panel下相同的atlas用depth调遮挡关系,不同的atlas用z调遮挡关系2.NGUI3.5版本不管panel是否相同只用depth调遮挡关系,但如果renderQ使用startat则按renderQ计算遮挡关系 关于UIDrawCall1.不管是NGUI的2.6版本还是3.5版原创 2015-10-15 09:45:36 · 915 阅读 · 0 评论 -
Unity3D教程宝典之 FX Maker
FX Maker是Unity3d一款非常流行的效果制作插件。不但有超过300种效果预制体, 还可以自己制作效果。包含Mesh Effect 和Particle Effect。优点:资源库大,可以将消耗资源非常多的粒子效果转换为帧动画效果。当然也可以直接用不转帧动画的效果,这种效果是画面最好的,但是对显卡开销大。帧动画显卡开销小,占内存大,适合移动平台。Fx Maker还能自动保存。原创 2015-10-15 08:17:08 · 2067 阅读 · 0 评论 -
Unity3D开发(一):NGUI之UIRoot屏幕分辨率自适应
NGUI在Unity3D游戏开发中非常常用,而NGUI对于每一个UI场景,都是以一个UIRoot为UI游戏对象树的根的,那么这个UIRoot是起什么作用的呢?先简单看一下UIRoot中的基本属性UIRoot游戏对象的属性只有4个,分别是缩放规则,手动高度,最小高度和最大高度而正是这4个属性,将影响整个UI场景中整体的缩放比例,当设置好这4个属性之后,UIRoot游戏转载 2015-09-25 16:50:44 · 476 阅读 · 0 评论 -
Unity3D Resources TextAsset 文本
一些小型数据,可以用txt文本作为媒介,进行获取、传输、修改、存储;比如:User1.2.3.txt,放入 Resources/Data 文件下;一,Unity3d Resources.Load 加载获取数据。 TextAsset TXTFile = (TextAsset)Resources.Load("Data/board" + boardN.ToString() +原创 2015-10-12 14:54:42 · 928 阅读 · 0 评论 -
基于Unity行为树设计与实现的尝试
查阅了一些行为树资料,目前最主要是参考了这篇文章,看完后感觉行为树实乃强大,绝对是替代状态机的不二之选。但从理论看起来很简单的行为树,真正着手起来却发现很多细节无从下手。总结起来,就是:1、行为树只是单纯的一棵决策树,还是决策+控制树。为了防止不必要的麻烦,我目前设计成单纯的决策树。2、什么时候执行行为树的问题,也就是行为树的Tick问题,是在条件变化的时候执行原创 2015-10-26 19:20:46 · 1471 阅读 · 0 评论 -
Unity3D 物体移动方式总结
1. 简介 在unity3d中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position。2. 通过Transform组件移动物体 Transform 组件用于描述物体在空间中的状态,它包括 位置(position), 旋转(rotation)和 缩放(scale)。 其实所有的移动都会导致position的改变,这里所说的通过Tra原创 2015-10-10 18:10:44 · 841 阅读 · 0 评论 -
总结使用Unity 3D优化游戏运行性能的经验
作者:Amir Fasshihi流畅的游戏玩法来自流畅的帧率,而我们即将推出的动作平台游戏《Shadow Blade》已经将在标准iPhone和iPad设备上实现每秒60帧视为一个重要目标。以下是我们在紧凑的优化过程中提升游戏运行性能,并实现目标帧率时需要考虑的事项。当基本游戏功能到位时,就要确保游戏运行表现能够达标。我们衡量游戏运行表现的一个基本工具是Unity内置分析器原创 2015-11-04 23:19:33 · 896 阅读 · 0 评论 -
【Unity教程】Unity中的C#内存管理
本系列文章主要讲解C#针对unity的内存管理,共有三部分,各部分内容如下:• 第一篇文章讨论.NET和Mono垃圾回收的内存管理基本的原理。也涉及一些常见的内存泄漏来源。• 第二篇文章着重于使用工具发现内存泄漏。Unity Profiler在此方面是一个强大的工具,但它代价太高(unity5中免费)。因此我将讨论.NET反汇编和通用中间语言(CIL),以此展示如何使用免费转载 2015-09-15 22:28:01 · 2170 阅读 · 0 评论 -
AssemblyInfo.cs文件的作用
AssemblyInfo.cs主要用来设定生成的有关程序集的常规信息dll文件的一些参数请看以下具体说明://备注: [assembly:AssemblyDescription("用最强的抢劫类写成!")]//产品名称[assembly:AssemblyProduct("无为搜索")]//公司[assembly:AssemblyCompany("无为网络")]//原创 2015-10-16 18:46:40 · 1108 阅读 · 0 评论 -
全面解析Unity3D自动生成的脚本工程文件
我们在Unity3D开发的时候,经常会看到它会产生不少固定命名工程文件,诸如:Assembly-CSharp-vs.csproj Assembly-CSharp-firstpass-vs.csprojAssembly-CSharp-Editor-vs.csprojAssembly-CSharp-Editor-firstpass-vs.csproj转载 2015-10-16 17:54:21 · 583 阅读 · 0 评论 -
Unity3D Member Data和Inspector, Serialize的关系
Unity3D 中提供了非常方便的功能可以帮助用户将Member Data在Inspector中显示,并且定义Serialize关系。简单的说,在没有自定义Inspector的情况下所有显示在Inspector 中的属性都同时具有Serialize功能。换句话说,就是你在Inspector看到什么,保存游戏的时候,这些值就会被保存成二进制文件。可被Serialize的变量的定义方法原创 2015-09-25 12:10:54 · 428 阅读 · 0 评论 -
在Unity3D中动态创建对象和创建Prefab原型对象的三种方式
u3d里动态创建对象,需要使用prefab而创建的时候 MonoBehaviour.Instantiate( GameObject orignal) 需要一个作为原型的对象。本文提供三种方式获得prefab对象。 方式一:使用脚本的public字段直接在Project视图里找到做好的prefab,将其拖拽到指定脚本的指定public GameObject 字转载 2015-06-12 10:43:09 · 687 阅读 · 0 评论 -
untiy3d 热更新 脚本 动态更新 c#lite 图形学
以下文章转载自图形学大神李总老师的博客.C#Lite是李总自己做的一个开源项目,旨在解决因u3d在ios平台不能动态更新以及lua脚本在u3d上效率低下的问题.作为4年前就给李总当小弟,被李总狂虐的我一定要帮他做做宣传.有需要的朋友可以去http://crazylights.cnblogs.com/观看持续更新的帖子.貌似最近他开始讲些图形学的入门捷径.有兴趣并且不是小白的转载 2015-07-10 18:10:57 · 882 阅读 · 0 评论 -
Unity3d热更新全书-加载(一)从AssetBundle说起
Unity3D动态下载资源,有没有解?有,AssetBundle就是通用解,任何一本书都会花大幅篇章来介绍AssetBundle.我们也来说说AssetBundle我们试全面的分析一下Unity3D提供的资源加载机制1.Resources//内嵌资源,使用方法Resources.Load,可以加载任意种类的资源,不能动态修改,卒。2.StreamingAssets//随转载 2015-07-10 18:10:08 · 528 阅读 · 0 评论 -
unity3d出镜率最高的面试题
一.什么是渲染管道?是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去。主要步骤有:本地坐标->视图坐标->背面裁剪->光照->裁剪->投影->视图变换->光栅化。二.如何优化内存?有很多种方式,例如1.压缩自带类库;2.将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉;转载 2015-06-09 11:42:56 · 2699 阅读 · 0 评论 -
Unity3D中的Coroutine详解
Unity中的coroutine是通过yield expression;来实现的。官方脚本中到处会看到这样的代码。疑问:yield是什么? Coroutine是什么?unity的coroutine程序执行流程怎么那么奇怪?unity中的coroutine原理是什么,怎么实现的?使用unity的coroutine需要注意什么问题?一、yield的在几种语言中的程序转载 2015-06-09 10:46:57 · 587 阅读 · 0 评论 -
unity3d所要知道的基础知识体系大纲
本文献给,想踏入3D游戏客户端开发的初学者。毕业2年,去年开始9月开始转作手机游戏开发,从那时开始到现在一共面的游戏公司12家,其中知名的包括搜狐畅游、掌趣科技、蓝港在线、玩蟹科技、天神互动、乐元素。开始做虚幻3游戏程序开发,现在转作UNITY3D。面试了12家公司大概总结一下面试的常考方向(以下排名不分先后,红色是需要着重了解的,但不仅限于此,如果有错,望指正)。1、面试方式:所有面试,转载 2015-06-09 18:39:52 · 1809 阅读 · 0 评论