
unity
贪玩的孩纸时代
这个作者很懒,什么都没留下…
展开
-
unity shader 菲涅尔效果
老样子,还是先上效果图:菲涅尔效果的原理大家可以自己去百度看看,网上有很多,这里就不多说了,我们直接看如何实现这个效果实现思路:1、求得视角方向,法线方向(世界空间下)2、根据菲涅尔效果的公式:FresnelValue=pow(1-max(0,dot(N,V)),_FresnelPow) ->N:模型顶点法线 V:视角方向 _FresnelPow:菲涅尔效 果的强度3、将求得的值与颜色相乘,即可具体实现:1、首先求世界空间下法线方向,这个比较简单,原创 2021-03-26 19:10:34 · 5281 阅读 · 2 评论 -
Unity切换为Android平台材质丢失解决方法
项目切换为Android平台后,在hub中打开对应项目的高级项目配置添加配置-force-gles30重启unity工程,即可切换为OpenGL ES 3.0注:该配置只对单个项目生效,需要的项目需要单独配置翻译 2021-03-23 16:18:27 · 1755 阅读 · 0 评论 -
unity shader 案例——地毯交互效果
首先看一下我们要实现的效果吧:我第一次看到这个效果时,感觉好厉害,一时间也没什么想法可以去实现,后面仔细去想了下,原来实现的原理还挺简单的(/捂脸)原理:可以吧球看成一个四维向量的点(CenterPos),然后把CenterPos当成是sin函数的最高点,延伸部分就用sin函数求出顶点的偏移值,就可以出现上述效果啦。1、设定一个地毯隆起的最大半径(R),也就是A点到CenterPos的长度,A点到CenterPos中间其实是有很多顶点的2、将每个顶点到CenterPos的距离转化为0-90度,这原创 2020-10-24 13:40:05 · 1272 阅读 · 0 评论 -
Unity shader 案例 --- 翻书效果
效果图:最近开始学习学习shader,不然感觉自己要堕落了(捂脸),,,先说下实现的思想吧:1、使用旋转矩阵旋转顶点2、使用sin函数,对顶点进行优化,简单说就是看起来更舒服3、使用两个pass,对plane的两面都进行渲染(毕竟一页纸是有两面的)首先,是创建一个旋转矩阵(我这边创建的是绕Z轴的,具体项目具体创建是X还是Y还是Z轴矩阵),然后将角度转成弧度进行计算然后,对顶点的Y轴进行sin计算,v.vertex -= float4(5, 0, 0, 0);这..翻译 2020-09-26 10:34:11 · 1492 阅读 · 0 评论 -
unity 无限列表功能(水平方向滑动,竖直方向原理类似)
public static class RectTransformExtensions { public static bool Overlaps(this RectTransform a, RectTransform b) { return a.WorldRect().Overlaps(b.WorldRect()); ...翻译 2020-04-13 11:36:32 · 1208 阅读 · 0 评论 -
unity 打开对话框进行打开文件和保存文件
在window平台下,有时我们需要打开或则保存一些东西到指定目录下,这时我们不需要再重复造轮子,完全可以调用系统的文件窗口,具体的调用如下:第一步:创建打开窗口和保存窗口的类。using UnityEngine;using System.Collections;using System.Runtime.InteropServices;using System;namespace Comm...转载 2018-06-07 09:26:15 · 6369 阅读 · 1 评论 -
unity 文件流读取图片和www读取图片的比较
IO流代码:void LoadByIO() { float time = Time.time; FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); fs.Seek(0, SeekOrigin.Begin); byte[] bytes = new b...翻译 2018-03-05 13:36:30 · 6040 阅读 · 1 评论 -
unity发布xcode遇到的问题
1、软件版本:unity5.6.0 + vuforia插件(版本:6.2.10)问题报错:Project /Users/qining/Desktop/ExportIosProject/Unity-iPhone.xcodeproj cannot be opened because the project file cannot be parsed。问题描述:unity(集成了vuforia翻译 2018-02-02 15:14:28 · 3621 阅读 · 0 评论 -
Unity制作引导页效果
效果图: 1、创建Canvas,设置RenderMode=ScreenSpace-Overlay,UIScaleMode = ScaleWithScreenSize, ReferenceResolution(x=1080,y=1920) 2、创建一个RawImage,命名为(parentGoImg),并做如下设置, 3、在parentGoImg下建几个RawImage,赋予想展示原创 2018-01-23 17:27:53 · 910 阅读 · 1 评论 -
unity实现车方向盘转动效果
效果: c#脚本如下:using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;public class NewBehaviourScript : MonoBehaviour, IDragHandler,IBe原创 2017-12-05 10:15:12 · 5232 阅读 · 0 评论 -
unitiy 自定义Attribute及反射的简单应用
效果图:由于公司网络限制,后期会将效果图上传public class Test:MonoBehaviour{ [MyTest(name = "枚举")] public Properties pp = Properties.HP; [MyTest(name = "整数")] public int a; [MyTest(name = "字符串")] pu...原创 2018-07-04 17:38:05 · 641 阅读 · 0 评论 -
unity 使用Attribute自定义一个HeaderAttribute效果
[AttributeUsage(AttributeTargets.Field,AllowMultiple = true,Inherited = true)]public Class TitleAttribute : PropertyAttribute{ public string title; public string color;//这里不能直接用Color,会报错,不知道为...翻译 2018-07-05 10:42:46 · 2041 阅读 · 0 评论 -
unity 获取Text组件里text内容的长度
/// <summary> /// 计算字符串在指定text控件中的长度 /// </summary> /// <param name="message"></param> /// <returns></returns> int CalculateLengthOfText(stri转载 2018-07-19 11:40:58 · 12204 阅读 · 0 评论 -
unity 如何判断本身layer是否在选择的LayerMask层中
如图,如果我们定义了一个LayerMask,命名为lm(可以选择多个不同的layer),我们要判断本身gameobject的layer是否在我们选择的layermask中,就需要按位与(&)了,public class NewBehaviourScript:MonoBehaviour{ public LayerMask lm; private void Up...原创 2018-08-09 17:13:13 · 5478 阅读 · 0 评论 -
unity 给新创建的脚本添加描述
public class ChangeScriptTemplates : UnityEditor.AssetModificationProcessor { // 添加脚本注释模板 public static string str = "/*START==========================================...原创 2018-08-30 09:43:47 · 630 阅读 · 0 评论 -
c# 打开或保存对话框
public static class Util{ [DllImport("user32.dll")] private extern static void SwitchToThisWindow(IntPtr hWnd, bool fAltTab); [DllImport("user32.dll", EntryPoint = "FindWindow")] priv...转载 2019-02-27 18:55:36 · 881 阅读 · 0 评论 -
unity 制作翻页按钮功能
效果图:UI子父级关系:代码中也都有加入注释,有不懂可私信我。脚本中用到了对象池,我没有上传,可根据自己需求做相应变动。脚本:PageBtnPanelCusing System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Events;using ...原创 2019-03-11 19:54:50 · 3669 阅读 · 4 评论 -
unity编辑器工具—— 可排序列表
效果图:公司网络限制,后面上传代码:using System.Collections.Generic;using UnityEngine;using UnityEditor;using UnityEditorInternal;[CustomEditor(typeof(NewBehaviourScript))]public class testEditor : ...翻译 2019-06-12 15:35:28 · 1599 阅读 · 2 评论 -
unity做类似QQ截图功能
效果: 代码如下:using System.Collections;using System.Collections.Generic;using System.Text.RegularExpressions;using UnityEngine;using NPinyin;using System.IO;public class NewBehaviourScript : MonoBehav原创 2017-11-03 09:42:27 · 739 阅读 · 0 评论 -
unity 文字转语音
1、新建一个c#工程,引用Microsoft Speech Object Library类 这样就可以在我们新建的c#工程里找到这个dll了,然后我们拖入到unity里, 2、在unity里调用方法 完成原创 2017-11-02 11:42:11 · 3855 阅读 · 1 评论 -
unity InputField导致安卓摄像头卡顿问题
unity InputField导致安卓摄像头卡顿问题问题: Unity(5.6.0)项目发布到安卓手机上,如果调用了摄像头的话,系统键盘(在inputfield输入内容)的开启会导致摄像头卡顿,随着键盘的启动次数增加,卡顿会越来越严重。 在Unity官网的Issue上有人提出了这个BUG,但是没有解决办法,有人测试过Unity5.2、5.3、5.4、5.5版本都存在这个问题。解决办法: 两者转载 2017-08-24 14:21:19 · 1949 阅读 · 4 评论 -
unity自定义inspector面板(选择不同枚举类型,inspector面板出现不同信息)
废话不多说,先上效果图: ,简单的来说也就是代码枚举几种类型,我选择A,就出现A的相关数据,选择B就出现B的相关数据,如果不做这种效果,inspector面板就会有很多东西,太乱。好了,下面开始教如何制作这个种效果的: 先新建一个C#脚本,脚本名称随便你,我这里用test1.cs,相关内容如下:using UnityEngine;using System.Collections;public原创 2017-08-25 09:16:06 · 17578 阅读 · 11 评论 -
如何使用UGUI创建制作不规则按钮
用UGUI创建一个image图片组件,然后在image组件上添加button组件,并且添加上polygon collider 2D功能,然后圈出要点击的区域 并且把canvas上的Graphicc Raycaster组件移除掉,并在canvas上添加如下代码: using UnityEngine;using System.Collections;using UnityEngine.UI;u原创 2017-08-25 09:31:51 · 546 阅读 · 0 评论 -
unity3d-连接mysql数据库
前段时间由于要做项目,所以研究了下unity连接mysql数据库的一些相关知识,现在讲自己的一些理解写下来,如果有更好的做法,可以连接我哦。 首先我们需要安装mysql数据库和Navicat for MySQL,稍后我会把安装包的连接传上来。 mysql和Navicat for MySQL的安装网上有很多,在这里我就不多说了。安装完成后,创建一个名为:testmysql的数据库,字符集选择utf原创 2017-08-25 09:20:55 · 1135 阅读 · 0 评论 -
使用UGUI制作虚拟摇杆功能
之前实习的时候,用到了虚拟摇杆,但是需要导入别人的包,有时甚至还有有一些错误,所以自己决定用自带的ugui制作一个虚拟摇杆,不仅方便,还减少了包的大小; 如图所示,制作一个背景的图片image,在建一个子物体image,放置好自己需要的摇杆图片(我用unity自带的图片),接下来就要写代码了,代码如下:using UnityEngine;using System.Collections;u原创 2017-08-25 09:17:35 · 682 阅读 · 0 评论 -
如何将Unity中的脚本文件转为dll文件
首先创建一个类库: 然后把类名改一下,在写一个方法: 然后打开:解决方案资源管理器: 然后添加引用: 然后点击浏览,找到UnityEditor.dll 和UnityEngine.dll ,然后点击添加 然后点击确定: 之后再unity中新建一个脚本:test1.cs,内容如下: 然后回到vs中,进行如下操作: 找到刚刚在unity中新建的test1.c原创 2017-08-25 09:13:26 · 674 阅读 · 0 评论 -
鼠标左键旋转视角,滚轮缩放视角
将此代码挂载 主摄像机上即可 usingUnityEngine;usingSystem.Collections;public class TXCameraFollowPlayer : MonoBehaviour { public Transform player;//需要旋转的模型 private Vector3 offset;//偏移量 private float speed=原创 2017-08-25 09:07:43 · 489 阅读 · 0 评论 -
自己写出控制VR眼睛人物行走的代码
vr现在已经很火热了,目前也出现了许多虚拟现实眼睛,比如 Htc Vive 、Oculus 、 Gear VR、 大朋 等等,他们都自带了unity开发的包,htc 、oculus都自带了人物控制移动的脚本,但是大朋却没有,现在就是让大家自己写出大朋的控制移动脚本,如下: 新建一个C#脚本,命名为:ChildTransform.cs 内容如下:using UnityEngine;using原创 2017-08-25 09:06:36 · 1890 阅读 · 0 评论 -
Unity VideoPlayer的使用
Unity5.6之前在移动端播放视频都用插件avpro,easy movie等等,在5.6,官方出了一个Videoplayer,可在pc、移动端播放视频,下面我们介绍一下具体的使用方法: videoPlayer分为两种播放模型,一种是本地播放(video clip),一种是网络端播放(url), 下面是一些比较大众化的设置:Play On Awake:脚本载入时自动播放。 Wait Fo转载 2017-08-24 14:32:09 · 9413 阅读 · 2 评论 -
修改RenderTexture的size
效果: 通过点击RawImage(摄像机映射到上面)来debug点击到的3D物体,射线从摄像机上发射 但是这样有一个bug,如果我们改变分辨率,会导致位置的误差 1920*1080分辨率:这是正常情况 现在分辨率改变了 ,变成1080*1920,这样就变成下面这样了(变形了) 这样就会导致我们在不同分辨率下,通过射线检测出现不同的执行情况,我们可以通过以下方法解决:public c原创 2017-08-24 14:54:25 · 7108 阅读 · 0 评论 -
unity获取鼠标下有哪些UI物体
public GraphicRaycaster m_CanvasUI; public EventSystem eventSystem; private void Update() { if (Input.GetMouseButtonDown(0)) { CheckSecondUI(Input.mousePosition);原创 2017-11-10 10:53:14 · 2576 阅读 · 0 评论 -
unity发布exe固定宽高比
void SetResolution() { float heightScal = 9.0f; float widthScal = 16.0f; int screenWidth = Screen.currentResolution.width; int screenHeight = Screen.currentResolution.he原创 2017-11-01 17:16:08 · 2409 阅读 · 0 评论 -
unity 使用百度语音进行语音识别
新建脚本,将下列代码复制进去即可, using LitJson; using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; using UnityEngine; using UnityEngine.UI;public cla翻译 2017-10-27 09:22:16 · 8408 阅读 · 5 评论 -
unity 录音并保存本地
我们可以使用unity自带的MicroPhone类来录音,回放录音,保存录音 具体代码如下:using System;using System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;public class MicroPhoneManager : MonoBehaviou原创 2017-09-08 18:24:19 · 8268 阅读 · 12 评论 -
unity DropDown控件的使用
UGUI中有了下拉列表,这让我们很方便的制作许多功能,但是这个控件的一些用法我们还是有必有知道的:public Dropdown d1;//获取一个下拉列表//单个添加下拉列表的选项Dropdown.OptionData temoData;temoData = new Dropdown.OptionData();temoData.text = “这里是选项的内容”;d1.options.Ad转载 2017-10-01 11:05:35 · 4330 阅读 · 0 评论 -
修改UGUI RawImage形状(在一个rawimage上显示N个颜色,两两颜色之间有过度)
效果图: 将代码继承Graphic,然后重写OnPopulateMesh方法即可,具体代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class test : Graphic { /// <summary>原创 2017-09-08 18:15:38 · 1724 阅读 · 0 评论 -
在PC或者手机端旋转、移动、缩放模型
将需要缩放的模型添加碰撞体,我这里以cube代替。 新建一个脚本,命名为test.cs 添加如下代码 /// /// 当前点击到的物体 /// private GameObject curObj = null; private Vector3 oldPos = Vector2.zero; private Touch oldTouch1; pri原创 2017-08-24 14:57:32 · 602 阅读 · 0 评论 -
PC/Android/IOS平台下访问StreamingAssets文件夹下资源
有时我们需要内置一下基础资源放在软件中,一般都是放在StreamingAssets文件夹下,但是我们一般都怎么访问这个文件夹下的资源呢,一下为各个平台的地址:PC平台下:"file:///" + Application.streamingAssetsPath + 你的资源Android平台:Application.streamingAssetsPath + 你的资源IOS平台:"file:原创 2017-08-24 14:55:49 · 5568 阅读 · 1 评论 -
unity—Tab键切换输入框
在输入用户名密码的时候,我们经常喜欢按下tab键来切换输入框,但是unity里的UGUI没有直接的脚本用,所以只能自己写一个了, 首先新建一个脚本,命名为InputNavigator.cs 内容如下:using UnityEngine;using UnityEngine.UI;using UnityEngine.EventSystems;public class InputNavigato原创 2017-08-24 15:06:02 · 2734 阅读 · 1 评论