
Unity3D
chenchen216
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unity3D射线检测
射线检测主要用于像子弹是否打中物体,捡取物品等情况,本来面向百度想找例子看看, 不过没找到合适的,还是自己总结尝试吧。以下测试Unity3D版本:2017.4.2f2射线的检测步骤如下:1.Ray这个类为了产生一个射线,如果我们想要场景中某个物体产生一个射线,只需要定义一个ray,给予一个初始位置,以及方向便可以了。public Ray(Vector3 origin, V...原创 2019-10-25 14:26:51 · 1040 阅读 · 0 评论 -
Unity3D关于iTween知识详解和接口总结
目录1.简介:2.物体移动方法3.物体的颜色变化4.摄像机淡入淡出5.音频方法6.Look类方法7.旋转方法8.物体大小缩放9.晃动效果方法10.值方法11.外部工具方法12.iTweenPath 1.简介:iTween是一个动画库,作者创建它的目的就是最小的投入实现最大的产出。让你做开发更轻松,用它可以轻松实现各种动画,晃动,旋转,移动...转载 2019-01-22 11:02:09 · 14678 阅读 · 2 评论 -
Unity3D关于ShaderCompute中变量
ShaderCompute的资料真难找,关于其中变量有如下的注意如果我们想要定义Vector3的变量,在Shader中是不支持的,我们需要定义 float3等等常见类型:Color、Vector:float4,half4,fixed4Range、Float:float, half, fixed2D:sampler2D3D:sampler3DCube:samplerCub...转载 2019-01-06 20:24:11 · 950 阅读 · 1 评论 -
Unity3D中三种调用其他脚本函数的方法
第一种,被调用脚本函数为static类型,调用时直接用 脚本名.函数名()第二种,GameObject.Find("脚本所在的物体的名字").SendMessage("函数名"); //能调用public和private类型函数第三种,GameObject.Find("脚本所在的物体的名字").GetComponent<脚本名>().函数名(); //只能调用public类型函数...转载 2019-01-06 08:28:17 · 3938 阅读 · 0 评论 -
Unity3D 进行高分辨率建模,模型严重形变混乱
原因:Unity3D 中 mesh 的顶点数不能超过65000个(PS:此外,在3Ds Max软件中制作单一Game Object物体的面数不能超过65000个三角形,即32500个多边形Poly,如果超过这个数量的物体不会显示出来) 解决方法的话,方法一是从单个mesh网格物体分成多个;二的话可能可以尝试如何打破这个限制。方法可以参考此网站:https://stackoverfl...原创 2018-12-26 10:11:28 · 1891 阅读 · 0 评论 -
Unity3D中读取CSV文件
转自:https://www.cnblogs.com/lingLuoChengMi/p/9990488.html本人对原文进行了整理,适当加上注释和小部分修改。不过大部分代码也是转载。说明:1.写入一个单元格时,如果含有逗号,则需要将整个字段用双引号括起来;如果里面还有双引号就替换成两个双引号。2.写入一行时,末尾要加上\r\n作为行分隔符。3.读取时,也要根据上面的写入规则...转载 2019-01-04 09:41:07 · 4169 阅读 · 0 评论 -
Unity3D 对于在VR中普通摄像头和VR摄像头同时存在——分屏
这两天在研究关于VR的分屏,由于甲方要求需要在VR运行时,有多个一般的摄像头像监控一样定点存在场景中。而且能同时在屏幕上看到,我查了很多资料,并没有查到相关特别好的资料,只能找到如下的解决方案。解决方案1.首先,VR摄像头和一般摄像头并不能共存于一个屏幕上,(这是我面向百度的结果,如果有大神知道共存一个屏幕的方法,望赐教,谢谢),这就表明,只能分屏在两个屏幕,一个屏幕显示VR摄像头看到...原创 2018-11-27 16:42:28 · 6998 阅读 · 5 评论 -
Unity中SendMessage等相关Message用法
Message:用于向某个GameObject发送一条信息,让它完成特定功能。其实本质是调用那个GameObject里面的Script里面的函数。 Message相关有3条指令:要接收消息的GameObject.SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的Script 要接收消息的GameObject.Bro...原创 2018-11-14 19:42:00 · 720 阅读 · 0 评论 -
Unity中添加组件的几种方法
一、在编辑器上面添加一个组件。 二、在脚本中利用AddComponent函数添加一个组件,例如:GameObject player;player.AddComponent<PlayerManager>(); 三、利用RequireComponent添加一个组件。如:using UnityEngine;using System.Collections;...转载 2018-11-14 13:57:57 · 10687 阅读 · 0 评论 -
Unity3D中Debug.Log函数浮点float精度问题
转自:http://blog.sina.com.cn/s/blog_5d76edd80101iwib.html经常用Debug.Log函数来打印程序中的变量值,发现它显示的小数位数只有一位。 这个实在太低了,像0.0xxxxx这种小数就成了0.0!!!!!! 这误差太大了也! google了一下,确认是Debug.Log函数的问题,它在把Vector转成字符串的时候截断了。 用下面的方...转载 2018-10-24 18:58:16 · 4899 阅读 · 0 评论 -
Unity3D网格模式查看
在Scene下便可查看原创 2018-10-24 16:46:49 · 4324 阅读 · 0 评论 -
Unity3D发布后某些逻辑功能缺失,代码功能逻辑无法使用的可能原因
本人最近做一个项目比赛的时候,发现我打包后,某些功能神奇般的消失了,经过查询才知道了问题所在,记录一下以便查询,警示自己。首先,如果你最初打包的时候跳出了”The type or namespace name `UnityEditor' could not be found“的错误,然后你加了#if UNITY_EDITOR //用到编辑器的代码 #endif的语句,那么就有...原创 2018-10-26 10:58:50 · 2826 阅读 · 0 评论 -
Unity3D打包发生错误 "The type or namespace name `UnityEditor' could not be found"(小心使用)
这句话是说明UnityEditor未发现,主要是某个脚本里写了关于Editor相关的函数。首先我们需要知道,使用UnityEditor的时候,一般是在自己项目调试运行的时候使用,而打包出来生成文件的时候,这个命令是没法在文件中使用的,所以就算不提示错误,打包出来也是不能用。PS:这点尤其重要,因为有些逻辑命令,我们不应该用UnityEditor的相关函数写,不然打包出来也不能用。 ...原创 2018-10-26 10:43:29 · 28256 阅读 · 2 评论 -
Unity3D关于如何使用iTween制作各种简易动画 (官方例子的解释)
这款插件以前做项目用过,这次记录下,方便以后查询。介绍:iTween是一个动画库,用它可以轻松实现各种动画,晃动、旋转、移动、褪色、上色,、制音频等等 。详见官网:http://itween.pixelplacement.com 使用:asset store 搜索 "iTween" 即可ITween只有一个文件,它提供了多种方法。插件作者的目的也是为了能够更简单的制...原创 2019-01-22 11:04:34 · 1505 阅读 · 0 评论 -
C#(Unity3D)数值分析-牛顿(迭代)法
最近需要用此方法解决一元五次方程求解问题,所以学习了下,在此记录一下。 此方法的产生,是由于很多方程没有通解公式,所以求解只能通过数值方法。方法有很多,参见“数值分析”,类似书有很多。 牛顿法:(这里引用书籍上所述)设方程 f(x) =0,其中有近似根 Xk,利用泰勒公式在 Xk 点近似一阶展开,得到求解 f(x) = 0, 即 这里设 x 为 Xk+1,得到...原创 2019-01-28 16:38:14 · 1485 阅读 · 0 评论 -
关于Unity3D开发三星Gear VR的初步尝试(一):已实现打包到手机显示
这两天老师催我把前段时间买的三星GearVR在Unity3D尝试打包,不然就白买了,到现在已经成功实现了打包。我把记录贴下来,以免未来可能用。1.需要的硬件:三星GearVR、三星s8+(其他的几代应该也可以)2.需要的软件:Unity3D(本人使用的是2017.4.2f2版本)、Java Development Kit 8 (JDK)、Android SDK,版本一般不要太久远都可以(需...原创 2018-11-07 18:48:11 · 6448 阅读 · 13 评论 -
Unity3D利用LineRenderer画贝塞尔曲线
代码如下:void DrawCurve (Vector3 point1,Vector3 point2,Vector3 point3,LineRenderer MyL) { int vertexCount = 30;//采样点数量 List<Vector3> pointList = new List<Vector3> (); for (float r...转载 2019-05-10 18:44:59 · 2386 阅读 · 0 评论 -
Unity在UI界面上显示3D模型/物体,控制模型旋转
https://blog.youkuaiyun.com/Chinar优快云/article/details/81058773原创 2019-05-13 22:17:17 · 2824 阅读 · 0 评论 -
Unity发布WebGL如何本地打开
https://blog.youkuaiyun.com/blastblade/article/details/81170020原创 2019-05-13 21:58:52 · 5170 阅读 · 0 评论 -
Unity发布WebGL不显示中文字体问题
在Unity发布WebGL的时候中文不能够显示,主要在于字体的设置,Unity默认的字体是Arial字体首先想到的是字体类型不对,接下来更换字体解决方案:1.在Asset下创建文件夹,Font2.导入你从网上下载的或者本地字体3.更换字体,重新发布WebGL包更换的字体格式为 .ttf 格式 ,你可以从电脑本地字体找到这种字体格式的字体导入Unity也可以从网...转载 2019-05-13 21:51:46 · 2176 阅读 · 0 评论 -
Unity3D关于模型合并,模型简化
最近要简化一些模型,由于面数太多而且模型子物体也特别多,就找了个插件 SimpleLOD。(asset store可以搜到)此插件主要功能是1.合并模型(若顶点数超过unity单个Mesh 65535个顶点限制的话,会自动生成多个子物体)2.模型简化3.烘焙Atlas:根据模型的Material自动把不同类型的Texture分类显示出来,在合并的时候,会自动把同类型的Textur...原创 2019-03-13 11:35:39 · 12489 阅读 · 2 评论 -
Unity3D关于两个物体直接用圆柱进行连接画线(简单画线连接)
最近做的东西需要用圆柱画线,网上找了些,没找到合适的,所以自己简单写了一个。这个函数只需要输入起始点和终点即可,材质可以自己调整void DrawLS(GameObject startP, GameObject finalP) { Vector3 rightPosition = (startP.transform.position + finalP.tran...原创 2019-03-17 20:28:25 · 4693 阅读 · 3 评论 -
Unity3D 查看某脚本在当前场景的哪个物体上
方法如下:对脚本在右击选择下图所示即可原创 2019-03-11 18:56:53 · 2440 阅读 · 0 评论 -
Unity3D协程WaitUnitl用法
首先我们需要知道协程的用法, 能看到这个博客,说明至少会用协程部分了。对于WaitUnitl,用在 yield return new WaitUntil 表达式上,协程可以控制运行的时间,对于WaitUntil更是一个有效的挂起命令用法如下: int i,j; IEnumerator CloseDoor() { yield return new...原创 2019-03-07 11:11:24 · 7134 阅读 · 0 评论 -
Unity3D四边形绘制
实际上无论几边形,都是三角化,利用三角网格mesh画的。由于项目中需要用到,记录下来直接调用下列函数即可,顶点数组可以自己填写。其中添加此脚本的物体必须有MeshRenderer和MeshFilter两个组件public void DoCreatPloygonMesh(Vector3[] s_Vertives) { //新申请一个Mesh网格 Me...转载 2019-03-03 17:13:31 · 2200 阅读 · 0 评论 -
Unity3D在Scene中同一视角截图
这个问题本人困扰很久,由于做一些对比图,每次截图最好位置一样,但是很难自己调整成一样的,所以需要借助摄像机的位置。首先介绍下Unity GameObject菜单栏下有3个和View(此View指显示Scene面板虚拟相机(后面简称Scene Camera)的视角,而非真实Camera的视角)相关的选项:Move To View、Align With View和Align View to ...原创 2019-03-03 16:05:00 · 595 阅读 · 0 评论 -
Unity3D关于iTween回调函数
ITween一共三个回调函数:onstart、onupdate和oncomplete。顾名思义可以从名字中看出来。常用到最后一个,要是我以后项目中用到了前两个函数,我会把例子添加上。关于oncomplete就是在itween移动完成以后所执行的内容。例子如下: //路径寻路中的所有点 public Transform[] paths; void St...原创 2019-03-06 09:40:52 · 1669 阅读 · 0 评论 -
Unity3D暂停,继续游戏,重新开始,退出,以及 UnityEditor.EditorApplication打包后不会执行
1.暂停游戏。Time.timescale = 0;2.继续游戏。Time.timescale = 1;3.重新开始。using UnityEngine.SceneManagement;SceneManager.LoadScene (0);其中,0,为游戏场景的索引号,具体索引号在build的时候加入场景的时候后面写的有。4.退出游戏(在开发时,会没反应,打包后就可...原创 2018-10-25 13:56:07 · 19266 阅读 · 0 评论 -
在Unity3D中利用描点法画圆——两个圆融合
在Unity3D中利用描点法画圆的方法上一篇博客已写出 https://blog.youkuaiyun.com/weixin_42513339/article/details/83210495这次讲述怎么让两个圆融合。代码如下: int Pos_Z = 0; public int N; //半圆采样点个数 Vector3 CicleCenter1 = new Vector...原创 2018-10-20 13:10:09 · 2115 阅读 · 0 评论 -
Unity3D 对一个物体多个碰撞体做调整
一个物体下,不一定只有一个碰撞体,本人在做一个项目的过程中,遇到了一个物体加了几十个至上百个碰撞体,如果想让碰撞体变成触发状态,不太可能一个一个的点过来,所以写了个脚本进行遍历的调整。遇到的情况如下:脚本如下: BoxCollider[] col; void Start () { cleanAllColliders(this.transform); }...原创 2018-09-20 16:27:05 · 14338 阅读 · 0 评论 -
Unity3D对Time.deltaTime初步理解
用Unity3D已经有了一段时间,但是对于Time.deltaTime还是没理解,虽然经常用到,这次主要记下对于Time.deltaTime的学习记录。官方定义:按照秒来计数,完成最后一帧的时间(只读)。通常,使用这个函数来产生与游戏帧速率无关的效果。如果你加上或者减去一个值,那你很可能应该乘以Time.deltaTime。当乘以它以后,实质上表达是:让这个物体以每秒钟10米的速度...原创 2018-09-25 22:27:12 · 3396 阅读 · 1 评论 -
Unity3D 画线函数(实现和虚线)
1.若只需要在调试场景Scene里查看,不需要在Game运行场景看到,可以使用Debug.Draw这个函数一般在Update/Fixed Update/LateUpdate里调用,并且不能设置材质,不过可以指定颜色,例子如下:void Update() { Debug.DrawLine (Pos1, Pos2,Color.yellow); } 2...原创 2018-09-20 13:16:09 · 9066 阅读 · 0 评论 -
Unity3D 场景切换
在Unity3D中,一个场景在运行中切换到另一个场景的方法1. 在Unity中 File->Build Settings->把要切换的场景添加到Scenes In Build下面,也可以Add Open Scenes,添加完关闭这个页面,不要点 Build 或者 Build And Run 。2. 添加需要加转换场景的代码。//首先要记得加上引用命名空间using U...原创 2018-09-11 10:49:16 · 8180 阅读 · 1 评论 -
Unity3D 数字逐渐增加,一个数字动态变化到另一个数字(使用协程)
目录协程逐渐增加的实现首先实现上述功能,需要使用“协程”这个功能。协程协程:控制代码等到特定的时机后再执行后续步骤.先看Unity3D的函数执行顺序图官网链接:https://docs.unity3d.com/Manual/ExecutionOrder.html以上协程函数定义:(yield 开头的便是)yield null:协程将在下一帧所有脚本的Upda...原创 2018-09-14 10:52:47 · 19314 阅读 · 8 评论 -
Unity3D 关于延迟、暂停执行脚本的几个方法总结
1. InvokeRepeating函数 和 Invoke函数个人认为最为有效方法 用法:InvokeRepeating("delayOpen", 1,5);//1秒后调用 delayOpen() 函数,之后每5秒调用一次 ,写在Start函数内Invoke("delayOpen", 5);//5秒后调用 delayOpen () 函数 ,只调用一次 void delayO...原创 2018-08-30 11:29:54 · 26666 阅读 · 4 评论 -
Unity3D 实现物体始终面向另一个物体(绕轴旋转、四元数旋转)
一开始本人纠结于在VR中,怎么利用手柄来控制物体的旋转,物体位置不变。相当于:地球仪。更通俗点来说,就是一个棍子插到地球仪上,然后拿着棍子就可以控制地球仪转。手柄相当于那根棍子。代码如下:myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.positio...原创 2018-09-04 16:42:44 · 9093 阅读 · 3 评论 -
Unity3D多次执行void Start ()和Awake()
在Unity3D中,实际上 Start 函数只在脚本运行时,运行一次,然后便不再执行此函数,那么如何能够多次使用呢?这里实际上用了一个讨巧的方法,就是利用 OnEnable 函数。先看如下图:这是Awake、OnEnable、Start 函数的运行顺序表。OnEnable是在Awake之后Start之前执行的,这个函数二次调用时仍会执行,而Start和Awake不会。所以...原创 2018-08-20 14:13:36 · 6762 阅读 · 2 评论 -
Unity3D中Update和FixedUpdate、LateUpdate的区别
1.MonoBehaviour.Update 更新 当MonoBehaviour启用时,其Update在每一帧被调用。 2.MonoBehaviour.FixedUpdate 固定更新 当MonoBehaviour启用时,其 FixedUpdate在每一帧被调用。 处理Rigidbody时,需要用FixedUpdate代替Update。例如:...转载 2018-08-22 10:59:32 · 297 阅读 · 0 评论 -
Unity3D设置天空盒skybox
由于又忘记了,就写一篇博客做下笔记(此方法适用于5.X版本和2017版本,之后是否可行未测试)设置天空盒有两种方式一.在当前相机上添加skybox 二.在当前场景上添加skybox(两种方式的结果是一样的 第一种方式的优势在于 如果 世界中有多个摄像机的话,若要看不同的天空盒,就可以加多个摄像机) 先导入天空资源包,这里不赘述,下载完直接拖进去就行 一.当前相...原创 2018-07-30 13:45:47 · 21808 阅读 · 0 评论 -
Unity3D 碰撞器和触发器
对于碰撞器和触发器经常忘记用法,这次主要记录下以便于能够复习用 1.碰撞器发生条件:1.碰撞的双方中一定至少要有一个Rigidbody存在,并且碰撞双方必须都要有碰撞体组件。2.碰撞双方若只有一个有刚体,那么那个刚体一定要处于运动的状态下才会有碰撞事件发生。用法: void OnCollisionEnter(Collision col) { ...原创 2018-07-25 13:33:37 · 1259 阅读 · 0 评论