![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unity相关
张凯群
学习
展开
-
unity发布后 Encoding 936 data could not be found. Make sure you have correct internation 错误解决
Encoding 936 data could not be found原创 2022-06-23 20:35:57 · 2211 阅读 · 1 评论 -
常见的Unity导包升级后错误(一)
常见的Unity导包升级后错误:Ambiguous reference 'preview': CameraMotionBlurEditor.preview, UnityEditor.Editor.preview.需要把var preview : SerializedProperty; 改为 var preview_ : SerializedProperty;Assets/Scripts/Common/Editor/InspectorSearch.cs(270,49): error CS0117:.转载 2020-05-25 18:25:59 · 782 阅读 · 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 · 488 阅读 · 0 评论 -
unity编辑器拓展
一共就只有9种属性访问方式:AddComponentMenu 在Component菜单中添加新的菜单项ContextMenu 在当前脚本的组件中添加右键菜单内容ExecuteInEditMode 让当前脚本可以在运行模式中实时更新修改HideInInspector 是变量在检测时不被显示,但是会被实例化?NonSerialized原创 2016-01-28 10:45:48 · 412 阅读 · 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 · 2855 阅读 · 2 评论 -
BCE0004: Ambiguous reference 'preview': CameraMotionBlurEditor.preview, UnityEditor.Editor.preview.
记录:建立项目版本为Unity4.6,改为5.3.4版本,运行项目报如下错误:“BCE0004: Ambiguous reference 'preview': CameraMotionBlurEditor.preview, UnityEditor.Editor.preview.”修改preview为preview_ var preview_ :原创 2016-07-04 17:40:36 · 2479 阅读 · 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 · 2395 阅读 · 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 · 429 阅读 · 0 评论 -
animation中CrossFade的问题
之前一个项目在教室中有很多带动画的学生模型,运行中在摄像机视野内的模型动画顺利播放,但是视野外的会卡住。或者在sence视图中能看到的会顺利播放。最后把animation的CrossFade播放改为直接play播放,问题解决。具体原因出在哪里还未知,有空研究研究,哪个大神知道有什么坑给说下。原创 2016-09-20 11:09:28 · 3702 阅读 · 0 评论 -
VR一体机上场景中闪烁阴影问题
项目在PC上运行没有问题,发布apk到手机上也未发现问题,测试手机为魅族XM5,但是放到VR一体机上,场景会有阴影闪烁,后面找到的原因是,场景有自身的天空盒,又加上了美术提供的一个小的天空盒,阴影是光投射小天空盒产生。这个只是出现在VR一体机上。原创 2016-09-20 11:12:03 · 1915 阅读 · 0 评论 -
Unity3D实现2D人物动画① UGUI&Native2D序列帧动画
原理看过前篇的朋友,一定能猜到这篇的内容了,2D人物动画,这是一个老生常谈的话题,很多人都写过或者提供过类似的代码,本文还是遵守着重原理,代码次之的原则。下面是根据以前自己学习的时候学习“深蓝色右手”WPF游戏教程的“WPF/Silverlight动画及游戏系列教程”,先结合Unity3d技术改编的原理文字动态实现2D人物角色动画目前有两种主流方法,下面我会分别进行介绍。转载 2017-05-16 22:13:37 · 4350 阅读 · 0 评论 -
Unity3d 载入 C++/CLI (托管模式c++) 的动态库(DLL)
打开vs.然后新建. 这时候选择. CLR库项目.之后就进入了项目.然后加入如下代码 用来测试 是否dll 被使用. a 和 b 相加返回结果.很简单的程序. 之后就是需要改一些项目的属性. 因为unity使用mono的原因. 1.Framework3.5 是 unity的版本. 这里本人的vs是2012/2013 使用fw 4.5了. 所以高了这里需要降下来.由于IDE里...转载 2019-02-16 16:01:13 · 743 阅读 · 0 评论 -
unity摄像机实现镜像效果
using UnityEngine; [RequireComponent(typeof(Camera))] [ExecuteInEditMode] public class MirrorFlipCamera : MonoBehaviour { new Camera camera; public bool flipHorizontal; void Awake ...原创 2019-02-20 13:57:30 · 2945 阅读 · 0 评论 -
切换摄像机:一个键控制一个摄像机
切换摄像机:一个键控制一个摄像机这里是有多少台摄像机就要设置多少个建,有些场景可能有十多个视角,比如NBA2K游戏里面就有多达12个视角以上,下面这种方法就不适用了,[csharp] view plaincopyusing UnityEngine; using System.Collections; public class ActiveCamera : MonoB转载 2015-08-18 09:39:05 · 620 阅读 · 0 评论 -
Unity摄像机Viewport相关(一)
在代码中改变Viewport的尺寸:obj.camera.rect=new Rect(,,,);如何实现在maincamera下的分屏:设置maincamera的clearFlags 默认创建时候是Skybox改变为Depth Only因为SkyBox会替我们默认渲染背景颜色,而DepthOnly则会把背景颜色一同清掉。创建2个camera之后Viewpor原创 2015-08-18 14:56:37 · 2929 阅读 · 1 评论 -
Unity之AnimationCurve
在完成曲线运动轨迹的功能中用到了AnimationCurve,它的使用非常灵活,通过自己设置动画曲线,是控制物体完成自己想要的效果。它跟tween里动画曲线的功能类似。代码使用,先public AnimationCurve an;可以在编辑器中找到相应组件。点开出来编辑面板,使用方法总结在下面:双击左键,生成一个控制点,在控制点右击,出现一个菜单:Delete Key:删除当前控制原创 2015-11-26 15:07:36 · 1075 阅读 · 0 评论 -
Unity3D中自带事件函数的执行顺序
在Unity3D脚本中,有几个Unity3D自带的事件函数按照预定的顺序执行作为脚本执行。其执行顺序如下:编辑器(Editor)Reset:Reset函数被调用来初始化脚本属性当脚本第一次被附到对象上,并且在Reset命令被使用时也会调用。编者注:Reset是在用户点击Inspector面板上Reset按钮或者首次添加该组件时被调用。Reset最常用于在见识面板中给定一转载 2015-11-26 09:43:28 · 368 阅读 · 0 评论 -
public变量的赋值
定义一个public变量时赋值public a=1;分别在Awake,start和面板中给它赋值,可以看出,a的赋值顺序为首先定义时赋的值1,.然后替换为面板中的值,再替换为Awake中的值,再替换为Start中的值。这里可以用到 [HideInInspector]和[SerializeField][HideInInspector]将显示在面板上的序列化值隐藏。原创 2015-11-24 17:25:52 · 1272 阅读 · 0 评论 -
Unity3D摄像机高级控制
在游戏场景中,通常摄像机如果需要进行一些不规则的固定运动,比如片头的场景摄像机的移动,此时如果通过代码来控制,虽然可以实现但调试过程并不直观,所以我们可以通过绑定摄像机动作来达到这一效果。创建动作的过程这里不再赘述,前面的文章中有详细的讲解。首先将创建好的动作绑定至摄像机,利用关键帧补间动画进行摄像机运动控制,如图点击播放即可查看摄像机的实时运动效果,这里主要是针对xy转载 2015-11-23 10:44:50 · 683 阅读 · 0 评论 -
关于“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 · 834 阅读 · 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 · 10029 阅读 · 2 评论 -
Unity中HideInInspector和SerializeField
Unity会自动为Public变量做序列化,序列化的意思是说再次读取Unity时序列化的变量是有值的,不需要你再次去赋值,因为它已经被保存下来。 什么样的值会被显示在面板上?已经被序列化,但是没有用HideInInspector标记的值。 [HideInInspector]表示将原本显示在面板上的序列化值隐藏起来。 [SerializeFiel转载 2015-09-22 09:37:01 · 366 阅读 · 0 评论 -
Unity3D之协程(Coroutines & Yield )
写游戏代码,往往最终需要代码为连续的事件.结果会像这样:[它可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行。]private int state = 0; void Update() { if (state == 0) { //做步骤0 state转载 2015-09-09 09:59:09 · 320 阅读 · 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 · 1986 阅读 · 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 · 2511 阅读 · 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 · 6039 阅读 · 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 · 1211 阅读 · 0 评论