----------unity----------
unity相关
张凯群
学习
展开
-
unity自带雾效发布失效问题
unity自带雾效发布失效问题若fog雾效在场景中默认状态为关闭,发布后切换为开启会失效。需要fog雾效在场景默认开启unity版本:5.6.0原创 2020-03-30 15:19:07 · 1839 阅读 · 0 评论 -
unity中使用FingerGestures插件3.0
FingerGestures包结构FingerGestures例子列表设置场景教程:识别一个轻敲手势教程:手势识别器教程:轻击手势识别器教程:拖拽手势识别器教程:滑动手势识别器教程:长按手势识别器教程:缩放手势识别器教程:旋转手势识别器教程:自定义手势识别器教程:识别手势事件建议:使用.net代转载 2015-08-17 11:07:25 · 2006 阅读 · 0 评论 -
unity3d动画插件iTween
首先是下载地址:http://download.csdn.net/detail/zkq666666/9032051一个cs文件导入到unity3d工程中。iTween是一个动画库,用它可以轻松实现各种动画、晃动、旋转、移动、褪色、上色、控制音频等控制音频:AudioFrom、AudioTo、AudioUpdate、Sta控制相机:Camera原创 2015-09-15 16:05:30 · 767 阅读 · 0 评论 -
Unity3D PoolManager缓冲池插件
我用的PoolManager版本是5.5.2的,导入的包总共有三个文件夹:Editor,Plugins,PoolManagerExampleFiles1、Editor这个文件夹里面的东西,顾名思义,就是写关于编辑器的东西,从而使用于可以很方便的为对象添加PreRuntimePoolItem和SpawnPool这两个脚本,生成的编辑器样式为:2、Plugins文件夹里面主要有转载 2015-09-23 10:17:42 · 522 阅读 · 0 评论 -
itween用法深入
iTween的几个回调函数:onstart,onupdate,oncomplete ,都需要用onstarttarget,onupdatetarget,oncompletetarget指定回调函数在哪个Gameobject上。此外可通过oncompleteparams来向回调函数中传递参数,指定类型的参数只可以传递一个。可以通过船底一个Object对象,里面包含不同的参数,实现传入多个参数原创 2015-12-08 13:16:36 · 576 阅读 · 0 评论 -
NGUI基本使用之UISlider事件响应
NGUI 3.6.8版本slider其他部分很简单,有很多介绍,很容易理解。本文说说slider的事件响应。新版NGUI事件响应做了改变,之前如下图:但是新版里没有了Event Recv和Function变为:在 On Value Change下可以完成事件响应,在Notify添加进挂有包含响应方法的脚本的物体例如在Main Camera上脚本里定义了如下方原创 2015-08-27 16:29:09 · 1373 阅读 · 0 评论 -
NGUI3.5.3 如何使用拖拽控件
拖拽控件在移动端游戏的开发过程中特别常见,如好友列表、商城等等。NGUI3.0之前的版本与之后的版本在使用拖拽控件的脚本有很大差异。言归正传。本次我们要做一个可以上下拖动的面板。让我们先来看一下NGUI拖拽控件的结构。 自上而下可以分为三层: 拖拽层 排列层 拖拽子项 拖拽层可以理解成在一个容器,放置一些可以拖拽的控件。排列层也是一个容原创 2015-09-14 09:46:05 · 794 阅读 · 0 评论 -
UIpanel之修改 clipping size 数值
关键代码: .GetComponent().baseclipRegion = new Vector4(x,y,w,z); 注意:x,y 是clipping的center ,w,z是clipping的size不懂的留言问原创 2015-09-15 11:33:44 · 2254 阅读 · 0 评论 -
unity_NGUI动态字体制作与字体清晰的几点要素
1、需要制作动态字体,这样支持字体清晰输出。2、字体Size必要时需要调大。3、Keep crisp注意设定为Never。动态字体制作:1、添加ttf字体进工程,可以在控制面板里找到。2、创建一个空GameObject,重命名随意如DynamicFont。3、在这个空物体上挂上UIFont脚本。4、创建一个叫DynamicFont_Mat的材质。5、在Dyn原创 2015-09-24 14:02:51 · 2079 阅读 · 1 评论 -
Unity3D-FSM有限状态机的简单设计
在之前的文章里介绍了一个基础U3D状态机框架(Unity3D游戏开发之状态流框架)即大Switch的枚举状态控制。这种方法虽然容易理解,编程方法也相对简单,但是弊端是当状态变得复杂之后,或需要添加一种新的状态时,会显得非常混乱并且难以下手。故我们需要引进一种更高级的状态机技术来避免这些问题。网上有一些讲述U3D-FSM状态机的文章,但都不针对基础讲解,而且大多带有冗余的与状态机不相关的代码,基础不转载 2015-11-23 10:48:25 · 4334 阅读 · 0 评论 -
shader学习笔记二
下图就是找到了光照函数名称,真正有效的部分是lighting后面的部分,在编写时要加上lighting原创 2015-12-30 16:32:02 · 422 阅读 · 0 评论 -
shader学习笔记三
shader代码加注释:Shader "Custom/cg01" { SubShader { pass { CGPROGRAM// Upgrade NOTE: excluded shader from OpenGL ES 2.0 because it uses non-square matrices#pragma exclude_renderers gles// Up原创 2016-01-04 15:24:27 · 882 阅读 · 0 评论 -
Unity3D实现2D人物动画① UGUI&Native2D序列帧动画
原理看过前篇的朋友,一定能猜到这篇的内容了,2D人物动画,这是一个老生常谈的话题,很多人都写过或者提供过类似的代码,本文还是遵守着重原理,代码次之的原则。下面是根据以前自己学习的时候学习“深蓝色右手”WPF游戏教程的“WPF/Silverlight动画及游戏系列教程”,先结合Unity3d技术改编的原理文字动态实现2D人物角色动画目前有两种主流方法,下面我会分别进行介绍。转载 2017-05-16 22:13:37 · 4699 阅读 · 0 评论 -
VR一体机上场景中闪烁阴影问题
项目在PC上运行没有问题,发布apk到手机上也未发现问题,测试手机为魅族XM5,但是放到VR一体机上,场景会有阴影闪烁,后面找到的原因是,场景有自身的天空盒,又加上了美术提供的一个小的天空盒,阴影是光投射小天空盒产生。这个只是出现在VR一体机上。原创 2016-09-20 11:12:03 · 2020 阅读 · 0 评论 -
animation中CrossFade的问题
之前一个项目在教室中有很多带动画的学生模型,运行中在摄像机视野内的模型动画顺利播放,但是视野外的会卡住。或者在sence视图中能看到的会顺利播放。最后把animation的CrossFade播放改为直接play播放,问题解决。具体原因出在哪里还未知,有空研究研究,哪个大神知道有什么坑给说下。原创 2016-09-20 11:09:28 · 3740 阅读 · 0 评论 -
unity3d的四元数 Quaternion
四元数在电脑图形学中用于表示物体的旋转,在unity中由x,y,z,w 表示四个值。四元数是最简单的超复数。 复数是由实数加上元素 i 组成,其中i^2 = -1 ,。 相似地,四元数都是由实数加上三个元素 i、j、k 组成,而且它们有如下的关系: i^2 = j^2 = k^2 = ijk = -1 , 每个四元数都是 1、i、j 和 k 的线性组合,即是四元数一般可表示为a + bi转载 2016-09-02 11:18:52 · 459 阅读 · 0 评论 -
unity报“GetLocalizedString can only be called from the main thread.”错误。
unity版本5.3.4,场景单独运行没有问题,跳转时报“GetLocalizedString can only be called from the main thread.”错误。错误的意思是获取局部字符串只能从主线程调用。但是改变跳转方式也没有解决,这里有两个类似的问题:http://answers.unity3d.com/questions/995185/applicationlo原创 2016-08-16 14:58:35 · 2447 阅读 · 0 评论 -
错误“Error adding system: Data not available.”警告“GI output for inputsystem: 8589dc02183b182ccba8c3”的解决
大致描述一下问题,使用版本为5.3.4,编辑一个场景时,偶尔会出现模型材质变为默认材质等问题,关闭unity重新打开是必出现。运行没有别的问题,跳转另外一个场景后也没有问题,但是问题出现在停止运行之后,会出现“GI output for inputsystem: 8589dc02183b182ccba8c379604511a1 (f6038bfc6”警告与“Error adding syste原创 2016-07-13 18:48:55 · 2892 阅读 · 2 评论 -
unity编辑器拓展
一共就只有9种属性访问方式:AddComponentMenu 在Component菜单中添加新的菜单项ContextMenu 在当前脚本的组件中添加右键菜单内容ExecuteInEditMode 让当前脚本可以在运行模式中实时更新修改HideInInspector 是变量在检测时不被显示,但是会被实例化?NonSerialized原创 2016-01-28 10:45:48 · 433 阅读 · 0 评论 -
shader学习笔记三
shader代码加注释:Shader "Custom/cg02" { SubShader { pass { CGPROGRAM// Upgrade NOTE: excluded shader from DX11, Xbox360, OpenGL ES 2.0 because it uses unsized arrays#pragma exclude_renderers d3原创 2016-01-04 15:26:03 · 627 阅读 · 0 评论 -
在plane上实现镜面的效果
首先需要两个文件MirroRflection.shader,MirroRflection.cs镜面反射脚本下载地址:http://download.csdn.net/detail/zkq666666/9032051新建一个材质球,将MirroRflection.shader加上,添加到plane的material上:再将MirroRflection.cs脚本添加到plane原创 2015-08-21 14:19:33 · 827 阅读 · 1 评论 -
Unity3d Shader FX/Flare
shader FX/Flare:使用这个shader绘制出来的纹理将会一直显示在前端,好比关闭了摄像机的深度缓冲区后再绘制。效果:即使在障碍物后面,也能看到它。 具体代码如下:Shader "MyShder/FX/Flare" { Properties { // 主要材质图片 // _MainTex ("Particle Texture", 2D) = "bla转载 2015-09-16 09:32:09 · 2068 阅读 · 0 评论 -
解读Unity中的CG编写Shader系列1——初识CG
原博客:http://blog.csdn.net/mobanchengshuang/article/details/38664541CG=C for Graphics 用于计算机图形编程的C语言超集前提知识点:1.CG代码必须用CGPROGRAM。。。ENDCG括起来2.顶点着色器与片段着色器的主函数名称可随意,但需要再#pragma转载 2015-10-12 14:07:41 · 448 阅读 · 0 评论 -
unity中FPS的设置与显示
做项目时,想实时显示FPS,限定FPS来减轻CPU和GPU的负荷。注意,要限定FPS数值需要在Edit->Project Setting->Qualit中的VSync count改为Don't Sync代码根据unity圣典中Time.realtimeSinceStartup 自游戏开始实时时间下的例子修改:using UnityEngine;using System.Col原创 2015-09-08 15:01:00 · 2016 阅读 · 0 评论 -
Unity3D之协程(Coroutines & Yield )
写游戏代码,往往最终需要代码为连续的事件.结果会像这样:[它可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行。]private int state = 0; void Update() { if (state == 0) { //做步骤0 state转载 2015-09-09 09:59:09 · 336 阅读 · 0 评论 -
Unity中HideInInspector和SerializeField
Unity会自动为Public变量做序列化,序列化的意思是说再次读取Unity时序列化的变量是有值的,不需要你再次去赋值,因为它已经被保存下来。 什么样的值会被显示在面板上?已经被序列化,但是没有用HideInInspector标记的值。 [HideInInspector]表示将原本显示在面板上的序列化值隐藏起来。 [SerializeFiel转载 2015-09-22 09:37:01 · 383 阅读 · 0 评论 -
unity中3D text渲染遮挡问题解决
先描述一下问题:在3D场景中,我用Text Mesh做了个3D字体,放置在背景之前,但是在game视图里却被背景遮挡,而且换位置却可以显示,层次什么并没问题。找了很多方法终于解决。3D Text的默认材质的shader是GUI/Text Shader,而且不可以去手动更改,有了GUI的穿透显示的特性。解决办法是替换一个Shader,替换掉3D Text上的默认材质。从网上找到一段代码,写入原创 2015-09-24 10:44:05 · 10169 阅读 · 2 评论 -
关于“Shader wants tangents, but the mesh doesn't have them”的解决
在我用UV代码绘制的物体替换shader时,报出“Shader wants tangents, but the mesh doesn't have them”的警告。顾名思义,材质需要切线,但是网格中并不存在。在国外论坛找到如下解决的方法:private static void TangentSolver(Mesh theMesh) { int vert原创 2015-10-28 15:10:25 · 867 阅读 · 0 评论 -
Unity3D摄像机高级控制
在游戏场景中,通常摄像机如果需要进行一些不规则的固定运动,比如片头的场景摄像机的移动,此时如果通过代码来控制,虽然可以实现但调试过程并不直观,所以我们可以通过绑定摄像机动作来达到这一效果。创建动作的过程这里不再赘述,前面的文章中有详细的讲解。首先将创建好的动作绑定至摄像机,利用关键帧补间动画进行摄像机运动控制,如图点击播放即可查看摄像机的实时运动效果,这里主要是针对xy转载 2015-11-23 10:44:50 · 711 阅读 · 0 评论 -
public变量的赋值
定义一个public变量时赋值public a=1;分别在Awake,start和面板中给它赋值,可以看出,a的赋值顺序为首先定义时赋的值1,.然后替换为面板中的值,再替换为Awake中的值,再替换为Start中的值。这里可以用到 [HideInInspector]和[SerializeField][HideInInspector]将显示在面板上的序列化值隐藏。原创 2015-11-24 17:25:52 · 1395 阅读 · 0 评论 -
Unity3D中自带事件函数的执行顺序
在Unity3D脚本中,有几个Unity3D自带的事件函数按照预定的顺序执行作为脚本执行。其执行顺序如下:编辑器(Editor)Reset:Reset函数被调用来初始化脚本属性当脚本第一次被附到对象上,并且在Reset命令被使用时也会调用。编者注:Reset是在用户点击Inspector面板上Reset按钮或者首次添加该组件时被调用。Reset最常用于在见识面板中给定一转载 2015-11-26 09:43:28 · 387 阅读 · 0 评论 -
unity之警告“You can't place widgets on a layer different than the UIPanel that manages them.”
做项目时,用到NGUI,出现了很多警告如下:“You can't place widgets on a layer different than the UIPanel that manages them.",而且越来越多,拖慢性能。点开警告,代码如下:/// /// Check to ensure that the widget resides on the same layer a原创 2015-09-08 14:24:12 · 2555 阅读 · 0 评论 -
unity警告“Tiled GPU perf. warning: RenderTexture color surface (0x0) was not cleared/discarded, doin”
运行出现如下警告“Tiled GPU perf. warning: RenderTexture color surface (0x0) was not cleared/discarded, doing ”该警告是openGL引起的图形问题,解决办法是修改Edit->Graphics Emulation-> No Emulation。Graphics Emulation 图形仿真:原创 2015-09-08 13:51:58 · 6070 阅读 · 0 评论 -
unity工程中添加多个相机后警报
警告:There are 3 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene.解决办法:保留一个删除其他相机的Audio Listener原创 2015-08-18 15:17:12 · 1281 阅读 · 0 评论 -
解读Unity中的CG编写Shader系列2——shader的输入输出参数
原博客:http://blog.csdn.net/mobanchengshuang/article/details/38681111上一篇文章的例子中我们可以看到顶点着色器的输出参数可以说是直接作为了片段着色器的形参传递过来,那么不由得一个问题浮现出来,顶点着色器的形参是从何处传递过来的?顶点着色器的形参是gameObject 的meshRenderer组件将所有的mesh数据按每转载 2015-10-12 14:11:05 · 561 阅读 · 0 评论 -
解读Unity中的CG编写Shader系列3——表面剔除与剪裁模式
原博客:http://blog.csdn.net/mobanchengshuang/article/details/38685327在上一个例子中,我们得到了由mesh组件传递的信息经过数学转换至合适的颜色区间以颜色的形式着色到物体上。这篇文章将要在此基础上研究片段的擦除(discarding fragments)和前面剪裁、后面剪裁(front face culling and back f转载 2015-10-12 14:17:20 · 568 阅读 · 0 评论 -
双面渲染shader
Shader " DoubleSideShader" { Properties { //正面5个参数 _Color ("Main Color", Color) = (1,1,1,1) _SpecColor ("Specular Color", Color) =转载 2015-11-30 11:13:40 · 564 阅读 · 0 评论 -
shader学习笔记一
固定管线shader,部分使用的详细注释,注意有pass通道。Shader "Custom/myshader2" { properties //里面行不要加;号 { _Color("Main Color",color)=(1,1,1,1) _Ambient("Ambient",color)=(0.3,0.3,0.3,0.3) _Specular("Specular",colo原创 2015-12-31 11:35:26 · 642 阅读 · 0 评论 -
鼠标控制旋转
鼠标旋转被选中的物体1.X轴在平面坐标是左右方向,这里得到的是左右移动距离2.移动距离得到了,接下来要考虑以那个轴为中心作旋转3.这里要实现固定摄像机位置的情况下旋转物体,就以Y轴为中心,所以Rotate(0,mousX,0);[csharp] view plaincopypublic float roate_Speed=100.0f;//旋转速度 void Update转载 2015-08-18 09:24:13 · 508 阅读 · 0 评论 -
切换摄像机:一个键控制一个摄像机
切换摄像机:一个键控制一个摄像机这里是有多少台摄像机就要设置多少个建,有些场景可能有十多个视角,比如NBA2K游戏里面就有多达12个视角以上,下面这种方法就不适用了,[csharp] view plaincopyusing UnityEngine; using System.Collections; public class ActiveCamera : MonoB转载 2015-08-18 09:39:05 · 646 阅读 · 0 评论