自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cbbbc

博客博客

  • 博客(40)
  • 收藏
  • 关注

转载 Unity3D中世界坐标转换到NGUI坐标

场景中有一个照3D物体的透视摄像机,NGUI使用自己独立的正交摄像机,转换步骤如下: 1.使用透视摄像机把世界坐标转换到屏幕坐标Vector3 pos =Camera.main.WorldToScreenPoint(worldPos);pos.z = 0f; //z一定要为0.2.使用UI摄像机转换到NGUI的世界坐标Vector3 pos2 =UICamera.curre

2016-04-28 19:49:04 1793

转载 Unity世界坐标与屏幕坐标之间如何转换

先获取鼠标的坐标,然后移动模型,也就是模型跟随鼠标。怎么实现?Vector3 screenPos = Camera.main.WorldToScreenPoint(transform.position); // 目的获取z,在Start方法Vector3 mousePos = Input.mousePosition;mousePos.z = screenPos.z; // 这个很关键Ve

2016-04-28 19:47:30 29596

转载 Unity ScreentoWorldPoint中的z坐标说明

There are two problems here. The first one is that you need a 'new' in front of your Vector3() in C#. The second is that the 'z' parameter must be the distance in front of the camera. In perspective m

2016-04-28 19:45:32 5432 1

转载 Unity3D的几种坐标系

World Space(世界坐标):我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在场景中的。transform.position可以获得该位置坐标。            Screen Space(屏幕坐标,鼠标坐标):以像素来定义的,以屏幕的左下角为(0,0)点,右上角为(Screen.width,Screen.height),Z的位置是以相机的世界单位来衡量的。注:鼠标位置

2016-04-28 19:43:06 649

转载 Android adb shell启动应用程序的方法

在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am.usage: am [subcommand] [options]    start an Activity: am start [-D]        -D: enable debugging    send a broadcast Intent: am broadcast

2016-04-27 16:32:01 377

转载 Unity中的Debug类调试使用

UnityEngine.Debug:Class containing methods to ease debugging while developing a game.该类中包含了一些便于游戏开发时的调试方法。Class Variables isDebugBuildstatic var isDebugBuild : boolean In the

2016-04-26 19:35:20 12060

转载 Unity中鼠标左键按下,拖拽物体移动

把这段脚本拖给想要拖拽的物体,然后加上碰撞盒就可以了。 private Vector3 _vec3TargetScreenSpace;// 目标物体的屏幕空间坐标 private Vector3 _vec3TargetWorldSpace;// 目标物体的世界空间坐标 private Transform _trans;// 目标物体的空间变换组件 p

2016-04-26 16:34:16 6223

转载 Unity中触摸和鼠标操作的几个问题

关键点1:在unity中touch事件同时也会触发GetMouseButton事件,有时候可能会给你带来方便,但是如果没有意识到这个问题的话,也很可能给你带来很大的麻烦。关键点2:触摸操作也可以使用Input.GetAxis("MouseX")(或"MouseY",下同,略去不写)来判断指尖移动的距离,虽然这点很方便,但是这样就带来了另外两个问题,见关键点3和4;关键点3:Input.Ge

2016-04-26 16:30:53 5735

转载 unity3d输入与控制——键盘事件

在游戏中,玩家控制主角移动,按键攻击,选择行走。都需要在程序中监听玩家的输入。unity为开发者提供了input库,来支持键盘事件,鼠标事件以及触摸事件。本文主要回顾键盘事件,以后会逐文复习鼠标以及触摸事件。键盘事件一般的PC键盘有104个不同的按键,在程序中通过监听这些按键事件,从而进一步执行逻辑操作。如:射击游戏中,W表示前进,S表示后退,A表示左移,D表示右移。按

2016-04-26 16:24:38 68221

转载 unity3d KeyCode各键值说明

KeyCode :KeyCode是由Event.keyCode返回的。这些直接映射到键盘上的物理键。 值        对应键 Backspace     退格键 Delete      Delete键 Tab        TabTab键 Clear  Clear键 Return  回车键 Pause  暂停键 Escape  ESC键 Space  空格

2016-04-26 16:04:06 1561

转载 C#通过托管调用Win32 api获取键盘状态

代码如下:using System;using System.Windows.Forms;using System.Runtime.InteropServices;namespace MouseKeyboardStateTest{ public abstract class Keyboard { [Flags] private enum KeyStates

2016-04-26 16:00:27 2309

转载 GetKeyState、GetAsyncKeyState、GetKeyboardState函数的区别 以及虚拟键值

GetKeyState、GetAsyncKeyState、GetKeyboardState函数的区别:1、BOOL GetKeyboardState( PBYTE lpKeyState );获得所有的256个键(键盘按键、鼠标按键等等)的状态,lpKeyState是指向一个256bit的数组,存放所有键的状态。2、SHORT GetAsyncKeyState( int vKey );判断V

2016-04-26 15:57:14 4419

转载 Win32 GetKeyState和getasynckeystate

GetKeyState:     函数功能:该函数检取指定虚拟键的状态。该状态指定此键是UP状态,DOWN状态,还是被触发的(开关每次按下此键时进行切换)。    函数原型:SHORT GetKeyState(int nVirtKey);    函数:    nVrtKey:定义一虚拟键。若要求的虚拟键是字母或数字(A~Z,a~z或0~9),nVirtKey必须被置为相

2016-04-26 15:54:11 3880

转载 Unity内存优化(-)托管堆ManagedHeap的优化

很多童鞋在进行内存分析的时候都会遇到下面的问题:ManagedHeap.UsedSize和ManagedHeap.reservedUnUsedSize这两个占用了很大内存,即使手动GC.Collect之后,ManagedHeap.UsedSize和ManagedHeap.reservedUnUsedSize两者的综合仍然没有发生变化,内存占用依然没有缓解。在分析内存时,也发现了相同

2016-04-19 20:23:15 16986

转载 详解Unity Profiler内存分析问题

在使用Unity开发游戏的过程中,借助Profiler来分析内存使用状况是至关重要的。但许多开发者可能还对Profiler中各项数据表示的含义不甚明确,今天我们Unity官方的技术工程师柳振东,将针对Profiler内存分析相关的问题及解答,与大家进行分享。要想完全发挥Profiler内存分析的威力,首先要做的就是了解Profiler展示的数据所表达的含义,以及到底哪些模块所使用的内存才会

2016-04-19 20:17:19 7872

转载 Unity3d帧率设置及在游戏运行时显示帧率

在Unity3d 中可以通过代码设置 来限定游戏帧率。Application.targetFrameRate=-1;设置为 -1 表示不限定帧率,一般情况在手机游戏中我们限定帧率为30 就OK了。Application.targetFrameRate=30;但是把这个代码添加到工程之后,在Unity中运行起来发现并没有起作用,于是到官网查看资料,官网的解释是Applicatio

2016-04-19 16:32:54 31576

转载 Unity WaitForTargetFPS

WaitForTargetFPS,是关于帧数限制的,你可能开了垂直同步,其实是防止撕裂。先说撕裂,在显示器的帧缓存会被不同步的显卡的帧缓存给替换掉,导致显示器显示到一半的时候,内存被换掉,你看到上频是上一针的画面,下频是下一针的画面,游戏刷新的频率越快,撕裂就越严重,所以就会撕裂了。开了垂直同步,是指将游戏帧数锁定到和你的显示器刷新频率一样的,因为显卡和显示器的刷新频率不一样。 简单的说,Wait

2016-04-19 16:22:45 1643

转载 Unity3D中使用Profiler精确定位性能热点的优化技巧

简介    在使用Profiler定位代码的性能热点时,很多同学往往忽略Profiler的提供接口,当发现某个Update函数特别耗时时,没有有效的手段进一步定位热点出自该Update函数的哪一个模块或哪一段代码。     使用Profiler评估客户端性能时,推荐使用Profiler提供的性能采样接口,来更精确地分析定位客户端存在的性能问题。     举个例子说明精确定位的优势:

2016-04-19 15:05:36 1178

转载 unity性能分析

以下为 Unity 分析器使用的端口: 多播端口 (MulticastPort): 54998 侦听端口 (ListenPorts): 55000 - 55511 多播(单元测试): 55512 - 56023您应在网络节点内访问这些端口。也就是说,在 Unity 编辑器 (Editor) 上开启分析器 (Profiler) 时,您正尝试分析的设备应看到机器上的这些端口。第一步

2016-04-18 20:40:32 2279

转载 Profiler.BeginSample 开始采样

static function BeginSample (name : string) : void Description描述Begin profiling a piece of code with a custom label.开始分析一段代码,带有一个自定义标签。This will show up in the Profiler hierarchy. 这将显示在Profi

2016-04-18 20:31:08 3393

转载 记一次基于Unity的Profiler性能分析

A. WaitForTargetFPS:      Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间   B. Overhead:      Profiler总体时间-所有单项的记录时间总和。用于记录尚不明确的时间消耗,以帮助进一步完善Profiler的统计。        C. Physics.Simulate:      当前帧物理模拟的CPU占用时间。   

2016-04-18 19:22:35 404

转载 使用Profiler工具分析内存占用情况

Unity3D为我们提供了一个强大的性能分析工具Profiler。今天我们就使用Profiler来详细分析一下官方例子AngryBots的内存使用信息数据。       首先打开Profiler选择Memory选项,在游戏运行的某一帧查看Detailed选项数据(Simple模式的数据很直观,可以知道内存大体被哪部分占用了,网上也有很多相关介绍,我就不再啰嗦了),如下图所示:选中后

2016-04-18 17:43:31 1092

转载 在Unity 5中如何减少Draw Call

本文为大家分享Unity 5中标准着色器的简单概念,并分析如何减少Draw Call(Unity 5中显示为SetPass calls,下文的Draw Call皆表示SetPass calls)。        标准着色器是基于物理的着色器,可以正确渲染各种光照条件下的效果,支持跨平台,拥有可以启用不同功能着色器的纹理字段。        正文开始前先来看一段标准着色器效果的视频:

2016-04-18 15:53:33 3792

转载 drawcall优化

unity3D 对于移动平台的支持无可厚非,但是也有时候用Unity3D 开发出来的应用、游戏在移动终端上的运行有着明显的效率问题,比如卡、画质等各种问题。自己在做游戏开发的时候偶有所得。对于主要影响性能的因素做个总结。主要因素有:        1.      Saved by batching 值过大   ---- > 这个值主要是针对Mesh的批处理,这个值越高,应用就越卡 

2016-04-16 15:16:13 623

转载 Unity3D性能优化:DrawCall优化

一 MeshRenderer二 Skinned MeshRenderer三 合并要求对比四 总结五 场景制作建议 DrawCall优化合并,即DrawCall Batching.通过减少Draw call数 和对显卡性能的消耗来提高性能。一 MeshRenderer分为Dynamic Batching和 Static BatchingDy

2016-04-16 13:02:53 813

转载 U3D DrawCall优化手记

在最近,使用U3D开发的游戏核心部分功能即将完成,中间由于各种历史原因,导致项目存在比较大的问题,这些问题在最后,恐怕只能通过一次彻底的重构来解决现在的游戏跑起来会有接近130-170个左右的DrawCall,游戏运行起来明显感觉到卡,而经过一天的优化,DrawCall成功缩减到30-70个,这个效果是非常显著的,并且这个优化并没有通过将现有的资源打包图集来实现,图集都是原有的图集,如果从全局

2016-04-16 12:33:14 422

转载 [Unity优化] Unity CPU性能优化

前段时间本人转战unity手游,由于作者(Chwen)之前参与端游开发,有些端游的经验可以直接移植到手游,比如项目框架架构、代码设计、部分性能分析,而对于移动终端而言,CPU、内存、显卡甚至电池等硬件因素,以及网络等条件限制,对移动游戏开发的优化带来更大的挑战。   这里就以unity4.5x版本为例,对Unity的优化方案做一个总结,有些是项目遇到的,也有些是看到别人写的不错拿来分享,算作一

2016-04-16 12:26:43 1104

转载 Unity优化----drawcall系列

知识普及:     *Drawcall影响的是CPU的效率。因为draw call是CPU调用图形接口在屏幕上绘制对应的东西。   主体:      为了在屏幕上draw一个物件(因为render和draw有些区别,所以为了区分清楚,这些概念用英文),引擎需要提供一个draw call的API。draw call调用性能开销是很大的,会导致CPU部分的性能负载。这通常是因为draw

2016-04-15 19:36:37 583

转载 Unity性能优化之Draw Call

Unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:引擎首先经过简单的可见性测试,确定摄像机可以看到的物体,然后把这些物体的顶点(包括本地位置、法线、UV等),索引(顶点如何组成三角形),变换(就是物体的位置、旋转、缩放、以及摄像机位置等),相关光源,纹理,渲染方式(由材质/Shader决定)等数据准备好,然后通知图形API——或者就简单地看作是通知GPU——开始绘制,

2016-04-15 19:18:22 671

转载 深入浅出聊优化:从Draw Calls到GC

前言:刚开始写这篇文章的时候选了一个很土的题目。。。《Unity3D优化全解析》。因为这是一篇临时起意才写的文章,而且陈述的都是既有的事实,因而给自己“文(dou)学(bi)”加工留下的余地就少了很多。但又觉得这块是不得不提的一个地方,平时见到很多人对此处也给予了忽略了事,需要时才去网上扒一些只言片语的资料。也恰逢年前,寻思着周末认真写点东西遇到节假日没准也没什么人读,所以索性就写了这篇临时的

2016-04-15 16:20:56 460

转载 在Unity3D中使用Visual Studio调试shader

本文主要介绍在U3D中调试shader代码的主要技术:false-color images:通过设置片元颜色中的某个分量,使得该值可视。然后根据resulting image中的颜色分量的亮度(intensity of that color component),你可以得到shader代码中的值的结论,这种技术的确是一种很原始的调试技术,但不幸的是,这在U3D中并不是不常见的。 1 顶点数

2016-04-12 12:51:14 11690

转载 [Unity3D]图形渲染优化、渲染管线优化、图形性能优化

主要内容也可以参考:http://docs.unity3d.com/Documentation/Manual/OptimizingGraphicsPerformance.html最简单的优化建议:1.PC平台的话保持场景中显示的顶点数少于200K~3M,移动设备的话少于10W,一切取决于你的目标GPU与CPU。2.如果你用U3D自带的SHADER,在表现不差的情况下

2016-04-12 11:06:38 1051

转载 OpenCV颜色识别

彩色模型数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时的图片一般都是RGB模型。而HSV模型更符合人描述和解释颜色的方式,HSV的彩色描述对人来说是自然且非常直观的。HSV模型HSV模型中颜色的参数分别是:色调(H:hue),饱和度(S:saturation),亮度(V:value)。由A.

2016-04-08 17:36:15 2644

转载 HSV颜色模型

HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。外文名Hue, Saturation, Value别    称HSV提出者A. R. Smith提出时间1978年应用学科光学、色度学

2016-04-08 17:30:24 2107

转载 由RGB到HSV颜色空间的理解

1. RGB模型2. HSV模型3. 如何理解RGB与HSV的联系4. HSV在图像处理中的应用5. opencv中RGB-->HSV实现在图像处理中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三维坐标的模型形式,非常容易被理解。而HSV模型,是针对用户观感的一种颜色模型,侧重于色彩表示,什么颜色、深浅如何、明暗如何。第一次接触HSV,书本里首先抛出的

2016-04-08 17:24:26 805

转载 Unity3D教程宝典之Shader篇:特别讲 CG函数

本讲不需立刻看完,遇到相关函数时来查阅即可。并不是所以CG函数,Unity都支持,例如debug(float4x)Unity不支持(本文截图来源:Cg教程_可编程实时图形权威指南)E.1 数学函数E.2 几何函数E.3 纹理贴图函数E.4 导数函数E.5 调试函数E.1 数学函数E.2 几何函数

2016-04-08 17:20:11 607

转载 shader内置变量和函数

1、uint CreateShader(enum type) : 创建空的shader object;  type: VERTEX_SHADER,2、void ShaderSource(uint shader, sizeicount, const **string, const int *length):加载shader源码进shader object;可能多个字符串3、void Co

2016-04-08 17:10:28 1062

转载 Unity读取本地图片资源

我们以Unity读取本地图片资源为例,总结三种读取方法:1.采用Resource.Load方法读取,读取在Unity中Assets下Resources目录下的资源名,注意不采用后缀名。(意思是Load方法直接在Resources目录下找资源,路径已经指定)。              //加载图片方式1;(图片要放入在Assets/Resources/目录下);      Textur

2016-04-08 17:08:26 18105 1

转载 使用Mali Graphics Debugger调优Unity程序(Killer示例)

What is MGDARM® Mali™ Graphics Debugger的作用之一是针对采用ARM® Mali™ GPU的Android手机,进行app的GPU运行时调试和调优。Why MGD本文MGD主要用于性能调优。关于GPU性能调优,定性不定量都是耍流氓。猜是虚的、打嘴炮讨论是无用的、运行时正则表达式disable对象是盲目的、Unity Profiler是难于

2016-04-05 15:11:46 4636

转载 联机Unity Profile技巧--mac

这里暂且讨论使用Mac对iOS设备进行调试的方法。至于Android平台,会有细节但不是非常重要的不同。为什么需要联机Profile?大部分情况,直接在工作机(PC、Mac)用Unity针对工程进行Profile就能查出性能的瓶颈。但在不同的设备会有不同的性能表现、甚至一些设备由于硬件设计的原因,导致一些性能瓶颈只有在特定设备上才会表现出来。针对这些设备相关的性能问题,需要进行联机

2016-04-05 14:32:13 1561

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除