自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jay W的博客

我们都有自己的小梦想。

  • 博客(122)

原创 Unity3D开发之折线图的制作(三)折线图终结篇之抗锯齿

至于怎么挂载脚本怎么能够运行请参考折线图制作(二)的文章。之前写的折线图一直被锯齿烦恼着,一直无法使用。一开始一直以为要自己写边际模糊算法来模糊编辑的锯齿部分,这可太难了。后来我的美术搭档告诉我可以用渐变图来模糊边界。这里要感谢他的想法帮我把困扰两三年的问题解决了。如果需要使用图片,我们就不能继承自MaskableGraphic,因为他没有对图片的操作。我们要继承自image,这样有sprite的引用。代码没什么变化,主要是在设置uv时需要注意。将模糊边界的UV贴到矩形的长斜边上。 //折线图

2020-09-27 17:37:31 63

原创 Unity3D开发之画墙、地面分割

很多家装软件都有创建自己画户型工具的需求。通过绘制线段形成我们想要的户型。可以通过绘制线段产生对应的墙。可在墙上添加门窗。可在墙上添加多个门窗可修改墙两侧贴图:...

2020-03-30 14:40:03 634

原创 耳切法多岛洞画面

算法文档地址:英文版 、中文翻译博客多岛洞简介介绍如下:Search the inner polygon for vertexMof maximumx-value. Intersect the rayM+t(1,0) with all directed edges〈Vi,Vi+1〉of the outer polygon for which M is to the left of t...

2019-09-27 14:22:11 67

原创 Unity3D开发之折线图的制作(二)

一年前写过一篇折线图的制作,当时显示效果还可以,只不过因为之前刚接触写博客,所以写的内容不是很完善,加上比较忙,都是草率记录的,代码结构也不是很好。昨天我又把这个项目的代码熟悉了一遍,然后把代码更改精炼了下。应该比以前更容易读懂了。 代码如下,上面都有注释:using System.Collections.Generic;using UnityEngine;using ...

2018-05-10 08:58:07 3294 34

原创 Unity3D开发之折线图制作

柱状图、折线图这个在数据可视化中会经常用到,可是unity自身并不带创建折线图功能。所以,需要我们自己去写。第一次遇到这个需求是在我刚参加工作时,当时实在没法子,只好选择做了柱状图,那时候柱状图还是用实例化Image然后设置他的高度来显示。想想300,400个数据同时实例化,当时的设备得卡成啥样。还好,现在我找到了一个更好更省性能的方法。如果你想在我这复制代码去完成你的需求那你没必要往下看了,你只

2017-05-25 15:56:22 9069 12

原创 Unity3D 我的UIFramework

目录基本组件1.UI面板基类BasePanel1.API2.开发案例2.UI面板管理器UIManager1.API2.使用方法3.UI面板配置文件管理ReadUIConfig1.使用方法4.面板动画PanelAnimation1.API2.使用方法使用案例1使用案例2基本组件1.UI面板基类BasePanel1.APIprotected UIManager uiManager;统一获取对UIManager的引用protected RectTransform rectTransform,pare

2020-09-23 15:10:41 39

原创 Unity3D开发之发布安卓apk连接不上网络

这个问题据说是在高版本手机上会出现。我的测试机P30就遇到这种问题。解决方案:打开项目文件,进入 xx\项目文件\Temp\StagingArea文件夹下,找到AndroidManifest.xml文件。打开,在如下位置加入如下设置:android:usesCleartextTraffic="true" 记得在添加之前加一个空格,不然打包会报错。...

2020-09-16 21:45:37 65

原创 Unity3D开发之构建自己的多选标签

下面代码主要实现的是类似camera中的Culling Mask。可多选标签。首先创建一个我们自己的特性类,继承自PropertyAttribute:public class MyAttribute : PropertyAttribute{ }然后创建一个我们自己的属性绘制器,继承自PropertyDrawer,代码如下:[CustomPropertyDrawer(typeof(MyAttribute))]public class MyPropertyDrawer : Pr

2020-09-03 17:31:11 54

原创 Unity3D开发之Remote5连接不上unity

先使用usb连接手机和电脑,打开调试模式。 打开remote(要先打开remote) 打开unity项目 运行项目,就可以直接调试了。一定要先打开remote,后打开unity项目。我将这个情况和一个朋友说了,他猜测应该是remote作为服务器,unity为客户端。unity再打开得时候会主动去连接一次remote,连接不上就默认不使用remote调试。...

2020-08-23 22:49:11 67

原创 Unity3D开发之判断鼠标是否在UI上

unity给我们提供了一条api。EventSystem.current.IsPointerOverGameObject()==true他是利用unity的EventSystem事件系统判断射线是否射到物体上。我们查看官方文档可以看到继承BaseRaycaster的有三个组件,.PhysicsRaycaster, Physics2DRaycaster, GraphicRaycaster,所以当我们项目中只有canvas自带的GraphicRaycaster时,我们可以使用上述api判断鼠标是否在U

2020-05-12 09:50:07 195

原创 Unity3D开发之设置UI位置

我们在动态加载面板的时候就会涉及到初始化面板位置的问题,少不了设置UI位置。而UI不像3D物体可以直接设置Position。因为决定他位置的是RectTransform,并且UI会设置锚点,位置并不是固定。下面就来记录不同状况下设置UI位置的方法。一.不设置锚点直接设置LocalPosition即可。代码如下: RectTransform rectTransform = Get...

2020-04-29 15:36:05 710

原创 Unity3D开发提示框跟随文字数量自适应大小

项目中经常遇到鼠标移到按钮上显示按钮功能的需求。如下所示:我们设计的Tip结构是父物体为image,子物体是text。text上显示对应的文字。(Unity版本5.3.5)我们可以在image上添加HorizontalLayoutGroup和ContentSizeFitter组件。ContentSizeFitter在水平自适应上选择适应大小(preferred sized)。这样我们在...

2020-04-29 11:37:29 229

原创 Unity3D开发之聊聊项目UI框架

最近在负责老项目UI的更改,领导说有点乱,确实,改的我真想喝毒药,程序猿应该可以感受到项目重构的痛苦。之前的UI比较无序吧,就是一个按钮点击去调用某个事件,按钮图标变化,当用其他点击方式调用这个事件后,在去修改按钮图标。两处修改经常会导致显示错乱。还有调用某个事件的时候关闭某个面板,其他函数也有关闭这个面板,都是直接setactive(false),在维护项目的时候是真的很头痛。于是我就在...

2020-04-28 16:44:26 200

原创 C# 英文字母转换大小写

例子:将输入的英文单词首字母设置为大写,代码如下: public string TitleToUpper( string str) { if (string.IsNullOrEmpty(str)) return string.Empty; char[] s = str.ToCharArray(); cha...

2020-04-27 14:17:57 399

原创 Unity3D开发之编辑器清除log

public static void ClearConsole() { var logEntries = System.Type.GetType("UnityEditorInternal.LogEntries,UnityEditor.dll"); var clearMethod = logEntries.GetMethod("Clear", System....

2020-04-16 13:30:42 179

原创 Unity3D开发之UI图片闪烁的问题

问题:项目里用图片画的线在拉近和拉远摄像头时时而显示时而隐藏。后来在选中这个图片后发现他的scale很大650,而width很小为0.3。解决方案:后来将scale调成1而将宽度调成自己设定的长度就可以正确的显示了。...

2020-04-01 10:56:43 361

原创 谷歌浏览器支持WEBGL设置

右键谷歌浏览器快捷方式,选择属性=》快捷方式,在目标输入栏里输入如下命令:--enable-webgl --ignore-gpu-blacklist --allow-file-access-from-files。注意:-enable-webgl....前面-有个空格。然后应用,重启浏览器就可以运行wengl了。...

2020-03-29 00:14:52 855

原创 Unity3D开发之Transform记录

一个物体下有四个子物体,无论有没有子物体setactive=false,transform.childCount=4 同样 即使第一个子物体隐藏,transform.GetChild(0)依然能获取到。 transform.GetComponentsInChildren<Transform>().Length获得的数量受子物体是否隐藏影响。隐藏就无法被找到。 注意:返回的包含父...

2020-02-28 10:45:40 83

原创 Unity3D开发之拖拽物体功能实现

拖拽功能实现我们使用unity官方提供的事件接口IDragHandler。当我们拖动的时候,unity自动给挂在脚本的OnDrag函数推送事件。拖拽UI需要在inspector面板上添加eventsystem,并确定场景中有物体挂载GraphicRaycaster脚本。通常我们创建的canvas上就有此脚本。代码如下://拖拽UIpublic class DragUIContr...

2020-01-14 10:21:35 443

原创 Unity3D开发之设置网格对齐

设置网格对齐是让位置的小数点保留一位。这样位置距离可以保持在0.1的整数倍上。易于设置重合。代码如下:public static Vector3 CalculateGrid(Vector3 _v3) { float x = _v3.x; float y = _v3.y; float z = _v3.z; x = (...

2019-12-26 17:18:00 543

原创 Unity WEBGL设置全屏

在webgl平台,直接设置Screen.fullScreen = true;是不可以成功直接全屏的。我们去官网查看webgl的FullScreen讲解。Due to security concerns, browsers will only allow locking the cursor or going into full-screen mode in direct response t...

2019-12-18 18:10:57 646

原创

看到两句非常好的话,想留下来。1.看见生活里的细碎幸福。中100万大奖,月入10万,住200㎡大房子,只向往这种爆棚感的快乐,会让你忽视生活中的小确幸。你下班回家的一桌子热菜,一杯难受时的红糖水,一个你期待已久的机械键盘,这些微小幸福的拼凑,其实是大多数人一生的快乐组成。虽然我还是非常向往月入10住200平的大房子,但是现在能力和机遇都没有到来。所以我觉得这段话就是让我安静沉淀下来继续快乐...

2019-12-17 16:22:21 49

原创 Unity3D开发之webgl键盘事件监听和其他js输入冲突问题

我们在做一个大的集控平台的时候,很多时候会把unity导出的webgl 3D程序嵌到大平台页面中,属于大平台的一个子功能。在打开3d程序之后再切换到其他js页面的时候,我们会发现其他页面的输入键盘事件不好使了。比如一个input无法输入,也无法删除input里的文字。即input事件被劫听了。我们打开unity官方文档搜webgl input就会发现这么一段话:​By default, ...

2019-11-29 09:50:24 831 13

原创 JS消息传递

设定好消息格式如下:let message = { "resourseId": "assetId", "childrenResourseIds": [], "topoId": "self.topoId", "InfoSource": "2D" }如果在同一脚本中可以直接获取到对应的值。如下:message.topoId当我们向窗口发送消息让其...

2019-11-25 14:03:06 178

原创 VSCode直接运行js脚本

我们通常使用vscode编译js脚本。如何直接运行我们想测试的代码。创建Test.jslet message = { "resourseId": "assetId", "childrenResourseIds": [], "topoId": "self.topoId", "InfoSource": "2D"}console.log(message.InfoSour...

2019-11-25 11:21:28 5136 1

原创 C#属性变更的事件监测

上一篇写到list数组变更会触发某些事件。本篇用到的是数据类数据更改后对应的事件触发。如position变更导致对应的物体位置改变。代码如下:public delegate void PropertyChanged(object sender, object e);public class Info{ #region Event public event Propert...

2019-11-15 10:57:40 245

原创 C# 重写List数组 监听数组变化

最近在做编辑器,我们创建一个物体在数据类中就被add到管理数组中。当增加一个线段到数组中,我们要计算线段和其他线段是否有交点等一系列问题,这时候就需要我们在数组增加和移除处重写并增加事件推送。代码如下:using System;using System.Collections;using System.Collections.Generic;using System.Linq;usi...

2019-11-15 10:19:27 670

原创 Unity3D开发之读取excel数据转换到实例类中

也不知道为啥CSDN的平台这么有意思,下点dll都需要币。哭笑脸。下面是excel数据转成实体类的代码。excel有两种格式。.xlsx和xls。当格式为xlsx时,读取的代码为:IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);当格式为xls时,读取代码为:IExc...

2019-11-07 16:06:29 123

原创 Unity3D开发之BestHttp插件使用

Get请求 HTTPRequest request = new HTTPRequest(new Uri("http://10.1.5.106/WebService1.asmx/GetMethodHandle?"), HTTPMethods.Get, RequestHandle);接受请求的响应函数为private void RequestHandle(HTT...

2019-11-06 15:57:02 349

原创 Unity3D开发之IPointer事件

Unity给我们提供了IPointer一些unity事件接口。比如:IBeginDragHandler,IPointerClickHandler等。在新建场景中创建一个canvas后,我们会发现canvas上有一个GraphicRaycaster组件。他是负责射线检测和Canvas上的UI图形的交互组件。所以我们可以使用EventSystem.current.IsPointerOverGame...

2019-11-05 17:47:01 752

原创 Unity3D开发之UnityWebRequest请求

测试版本2018.2.9f1新版本的unity推出了UnityWebRequest请求方式。UnityWebRequest提供了一个模块化的系统来提供HTTP请求和处理HTTP响应。而之前的www请求方式正在被unity弃用。Http请求流程:创建一个Web Request(UnityWebRequest) 配置Web Request 设置自定义头 设置请求方式 (Get Po...

2019-10-31 17:23:07 2519

原创 C#List内元素按一定顺序排列

1.元素为数值型List<int> temp=new List<int>() {0,1,5,35,46,21,84,24,34}; temp.Sort((x,y)=>x.CompareTo(y)); foreach (var value in temp) { ...

2019-10-28 11:10:08 752

原创 Unity3D开发之计算鼠标点击射线和地面的交点(无collider)

在开发的时候我们经常会遇到这种需求,点击鼠标获取和地面的交点。通常我们使用射线和地面碰撞。可是当场景中有很多物体的时候 ,我们就要设置射线的碰撞laymask。非常麻烦。这里我们使用数学计算和地面的交点,无需担心其他干扰。我们点击鼠标后,发出一条射线,我们通过这条射线就可以获取到和地面的交点。我们计算射线的起点y值和平面的距离(y=0)。然后在获取射线方向向量在y轴方向的分量,这样我们通过距离...

2019-10-22 18:03:08 560

转载 Unity WEBGL设置浏览器全屏

转自https://blog.csdn.net/qq_38456478/article/details/78869971在生成的html里面修改代码<script type="text/javascript">function Reset() {var canvas = document.getElementById("#canvas");canvas....

2019-10-14 11:26:45 757

原创 Linux下启动Appache

cd:xxx/bin(apache 安装路径) ./startup.sh 启动apache ./shutdown.sh 关闭apache

2019-10-08 16:37:52 40

原创 C#List数组的复制

List<Line> lineList=new List<Line>(); for (int i = 0; i < 10; i++) { lineList.Add(new Line(Vector3.down, Vector3.back)); } List&lt...

2019-09-11 09:37:47 422

原创 Unity3D开发之通过shader设置模型顶点透明度

当我们想要在一个立方体上加入其它模型,但由于重面会发生闪烁的效果。这时候我们就需要设置重合位置的透明度为0。代码如下:Shader "Custom/MyShader" { Properties{ _Color("Color", Color) = (1,1,1,1) _MainTex("Albedo (RGB)", 2D) = "white" {} } SubShader {...

2019-09-03 16:07:14 1262

原创 两线段是否相交 相交的交点

线段AB和线段CD相交的条件是:C D两点在线段AB的两侧并且 A B两点在线段CD的两侧。判断是否在两侧,通常我们使用叉积来计算。如ABXAC所得的向量和ABXAD的向量方向一致,则说明CD没有在AB两侧。如果ABXAC或者ABXAD等于零向量,说明同向,顶点即是交点。代码如下(unity的API): public static bool LineIntersection(Vecto...

2019-08-30 17:01:48 69

原创 点到线段的最短距离

点到线段的最短距离有三种情况:最短距离分别是AP,CP,BP.第一种情况和第三种情况基本相似。首先我们要判断点在线段端点的两侧(1,3)还是在两个端点之间(2)。假设p垂直于直线AB的交点为C,我们只需要计算出AC(粗体代表向量)的方向以及大小即可。如果AC和AB反向,则是图1.如果AC和AB同向且AC的长度小于AC的长度,则是图2.若AC和AB同向且AC大于AB的长度,则是图3.实现...

2019-08-29 09:40:05 160

原创 判断一个点是否在三角形内

判断一个点P是否在三角形ABC内,我们只需要分别求出cross(AB,AP),cross(BC,BP),cross(CA,CP)三个叉积方向是否一致。代码如下: /// <summary> /// 是否在三角形内 /// </summary> /// <returns></returns> stati...

2019-08-26 17:53:35 60

空空如也

空空如也

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