自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 Unity文件变更回调函数

【代码】Unity文件变更回调函数。

2023-04-06 17:07:06 418 1

原创 Unity | 用于可序列化的Vector3、Quaternion

Vector3向量,可序列化封装using UnityEngine;/// <summary>/// /// * Writer:June/// /// * Data:2022.1.6/// /// * Function:可序列化的三维向量/// /// * Remarks:/// /// </summary>[System.Serializable]public struct SerV3{ public float x; publ

2022-01-08 17:33:20 3999 1

原创 Unity | 扩展编辑器之新建Lua脚本(无代码操作)

打开编辑器安装目录Editor\Data\Resources\ScriptTemplates新建一个文本文件(后缀必须是.txt)文件命名,应该与上面的文件保持一致:序号-需要在unity右键Create菜单列表下显示的名字-新建时的默认名字.文件后缀.txttxt文件里面的内容:--#NAME#--[[ Writer: Data: Function: Remarks:]]--...

2021-12-21 15:33:29 419

原创 Unity | 使用DFA算法过滤敏感词

using System.Collections;using System.Collections.Generic;using System.Text;using UnityEngine;/// <summary>/// /// * Writer:June/// /// * Data:2021.11.10/// /// * Function:DFA算法/// /// * Remarks:用于过滤敏感词/// /// </summary>publi.

2021-11-12 17:51:21 2953

原创 Unity | VS2019中代码颜色的更改

一般我们安装完VS2019的时候代码基本上也就3几种颜色。如下图,也就常见的蓝白绿等配色。好的,我们进行更改一下设置。展开文本编辑器,展开C#,然后点击高级。往下拉可以看到编辑器配色方案默认是2017的,我们选2019的,点击确定就可以了。大功告成!能看到明显的变化,一些关键字的颜色,函数的颜色等等都会有所区别。推荐一个扩展工具:也就是todo高亮显示。安装方法如下,搜索栏里输入todo,然后点击下载,下载完后,关闭VS...

2021-11-08 10:46:07 8645 6

原创 Unity | 本地保存角色数据并加密

前言:最近用json保存角色属性数据,保存在本地,可以被随意修改,这就很蛋疼了,随随便便将什么攻击力、防御力改一改,这跟开挂没啥区别了......后来还试了序列化与反序列化的方式来保存数据。虽然可读性不如json,但实际上还是可以修改。后来找了一下微软的加密数据,有分对称加密与非对称加密。本文使用的是对称加密,unity版本是2020.3.16。正题:Json测试数据类:/// <summary>/// 玩家类/// </summary>...

2021-11-07 18:29:15 5436 2

原创 Unity 泛型单例

public class MonoSingleton<T> : MonoBehaviour where T : MonoSingleton<T> { private static T instance = null; public static T Instance { get { if (instance == null) { instance = FindObjectOfType(typeof(T)) as T; if (in.

2021-08-03 15:24:16 214

原创 Unity复用动画控制器的小技巧

通常,我们要用同一套(即动画剪辑之间的关系一致)动画控制器。举个例子,有两个角色,他们都有走路、攻击、正在站立的状态,每个对应一个动画剪辑,他们之间的转换条件都是一样的,但是动画剪辑不一样,我们通常的做法是,ctrl+D再拷贝一份动画控制器然后逐一替换里面的动画剪辑这是我们通常用的一个技巧现在我们来介绍另一种方法,可以保留对应的关系。(我使用的版本是2020.3.10的,不清楚低版本是否有这个功能)比如我们的 Enemy_Type1 的动画关系是这样的选择原动画控制器,右键cr.

2021-06-22 16:33:09 1339 2

原创 Unity鼠标滑动,使3D物体旋转的几种方法

基于拖拽接口的:适用于UI,脚本应该挂载在能检测射线的UI相关的组件上using UnityEngine;using UnityEngine.EventSystems;/// <summary>/// /// * Writer:June/// /// * Data:2021.6.21/// /// * Function:拖拽3D物体/// /// * Remarks:/// /// </summary>public class Drag3DO

2021-06-21 17:29:05 3569 1

原创 Unity 读取Json字符串

Json字符串格式是这样的:

2021-06-16 16:45:11 547 1

原创 Unity更改新建脚本时的模板

我们一般新建的unity脚本默认是这样的:using System.Collections;using System.Collections.Generic;using UnityEngine;public class NewBehaviourScript : MonoBehaviour{ // Start is called before the first frame update void Start() { } // Upd

2021-06-01 16:07:18 261 2

原创 Unity根据子物体名字,寻找子物体的组件

我们寻找子物体,一般需要知道每个子节点,例子如下:比如说,我需要找到CloseButton这个物体上的按钮组件,脚本挂在Canvas上,如果是用平常的方式来寻找的话:transform.Find("BG/Image/CloseButton").GetComponent<Button>();需要使用这样一种方式来找寻,我觉得比较麻烦,于是写了一下遍历的工具。先看代码:using UnityEngine;/// <summary>/// /// * .

2021-05-31 15:51:54 7128 2

原创 Unity | C#委托、事件Lambda表达式的理解

using UnityEngine;/// <summary>/// /// * Writer:June/// */// * Data:2021.5.12/// */// * Function:委托例子/// */// * Remarks:/// /// </summary>//声明委托,可以在类的外面,也可以在类的内部public delegate X ADelegate<T, out X>(T t);public class Del.

2021-05-12 12:34:16 1083

原创 UnityRPG游戏中的球形检测范围

先上图,一下RPG游戏中,可以用这种方法检测玩家,我个人感觉这个方法比直接给敌人加触发器,要来得方便一些。using UnityEngine;/// <summary>/// /// * Writer:June/// */// * Data:2021.5.1/// */// * Function:玩家检测/// */// * Remarks:/// /// </summary>public class PlayerCheck : MonoBeha

2021-05-02 00:10:40 2168 7

原创 Unity隐藏或显示鼠标

显示或隐藏鼠标,虽然可以只使用Cursor.visible属性赋值即可,但要达到最好的效果,还得配合上Cursor.lockState属性使用。作用是锁住鼠标,一直保持在屏幕中心。防止即使隐藏了鼠标,依然还会把鼠标移到游戏外面。 /// <summary> /// 设置鼠标状态 /// </summary> /// <param name="_cursorState">状态:true显示,false隐藏</param> .

2021-04-27 12:11:35 5178 2

原创 Unity黑幕渐隐渐现

方法应该是不止这一种的,在此记录一下,自己写的一种。此外,要黑幕渐隐渐现需要调用Fade()方法using DG.Tweening;using UnityEngine;using UnityEngine.UI;/* * * Writer:June * * Data:2020.11.23 * * Function:黑幕渐变 * * Remarks:挂载到黑幕上 黑幕为Image才可以 * */[RequireComponent(typeof(Image.

2021-04-13 11:29:41 874

原创 Unity中,区别LookAt与LookRotation

详细的资料可以看这个大佬总结的:参考资料我这里直接用图结合着说:首先呢,我们的主角要看向敌人,下图是还没看向之前:使用LookAt函数看向敌人后,Z轴看向敌人(也是正面看向敌人)而如果LookRotation的参数直接填敌人的位置,就会出现下面这种情况:我们可以发现,主角现在看向的根本不是敌人。在图上很明显,主角看的方向,与原点到敌人的方向相同:所以要想主角看向敌人,则应该取黑色箭头的方向,即参数应该填:(敌人的位置-主角的位置)下面是测试代码:us

2021-04-02 22:18:15 2503 1

原创 Unity判断鼠标是否在UI上的方法

using UnityEngine;/// <summary>/// /// * Writer:June/// */// * Data:2021.3.16/// */// * Function:UI检测/// */// * Remarks:判断鼠标是否在UI上/// /// </summary>public class UICheck : MonoBehaviour{ private void Update() { if.

2021-03-16 18:14:07 1666

原创 UnityDoTween插件关于动画重复使用的问题

先来看一下demo:在demo中呢,图片1(左侧的image)与图片2(右侧的image)做了一个从0->1的缩放动画。之前我做这些简单的动画都是默认让图片初始大小为0,然后用dotween插件的函数进行缩放至1。如果只是使用一次的话,倒没什么。如果需要多次使用的话,那么第二次使用时,必须初始化图片的大小,也就是让图片大小设置为0,再进行动画的播放,不然是没有这个动效的。而第二种方法呢就是用一个动画倒置的方法来播放。也就是加From()这个方法。具体测试代码,下面会给出。利用这个倒置,可以重复

2021-03-10 18:42:39 2663 2

原创 UnityRTS相机的移动缩放功能

所谓RTS就是即时战略游戏(Real-Time Strategy Game)。话不多说直接看一下demo:相机的层级关系(移动的操作是对父物体进行操作,而缩放是对子物体主相机的操作):以此场景为例,自己设置的一些参数,主要是移动速度,边界、缩放限制等。代码如下(挂载到相机的父物体上)。有两种鼠标的控制方式,一种是边界检测,一种是鼠标拖动。这个代码是完整版的,也就是键盘也可以控制相机移动缩放的,如果只需要鼠标控制的,请往下看:using UnityEngine;/// &

2021-03-10 12:19:03 921

原创 Unity学习之重置内置运算符

直接上代码:using UnityEngine;/// <summary>/// /// * Writer:June/// /// * Date: 2021.1.30/// /// * Function:重载内置运算符/// /// * Remarks:可以重载除赋值号以外的符号运算/// /// </summary>public class OperatorTest : MonoBehaviour{ private void Star

2021-01-30 17:04:44 124

原创 Unity | 宽度优先搜索算法的简单实现

理论的知识,这篇文章就不作过多的扩展了,网上随便一搜就有很多好的文章。最近做算法练习,看完理论先自己动手试试。不废话,下面开始吧:蓝色是开始点,红色是终点,绿色表示遍历过的点。主要的逻辑类:using System.Collections;using System.Collections.Generic;using TMPro;using UnityEngine;/* * * Writer:June * * Date: 2021.1.13 * *

2021-01-14 14:46:34 192 1

原创 Unity加载网络图片的两种方式

using System.Collections;using UnityEngine;using UnityEngine.Networking;using UnityEngine.UI;/* * * Writer:June * * Date: 2020.12.26 * * Function:两种从网络上下载图片的请求方式 * * Remarks:这些方法仅支持Image组件 * */public class RequestData : MonoBeha.

2020-12-26 13:33:04 4818 2

原创 Unity | 三种洗牌算法

using System.Collections.Generic;using UnityEngine;/* * * Writer:June * * Date: 2020.12.21 * * Function:三种洗牌算法 * * Remarks: * */public class ShuffleLogic : MonoBehaviour{ #region Fisher-Yates Shuffle public void F.

2020-12-22 12:16:01 1394

原创 Unity格式化Json字符串

首先导入动态库Newtonsoft.Json.dll调用这个方法,传入json字符串,会返回格式化后的json字符串 /// <summary> /// 格式化json /// </summary> /// <param name="str">输入json字符串</param> /// <returns>返回格式化后的字符串</returns>..

2020-11-29 11:56:28 948 1

原创 Unity后处理效果之边角压暗

我使用的版本为2019.4.12(LTS)版本,项目是HDRP项目。边角压暗效果的触发,可以按钮触发,也可以被击按键触发,效果稍微有点差距,但不大。首先先在项目里新建后处理的配置文件,方法如下:然后随便创建一个空物体,挂上脚本DynamicVignette脚本如下:using System.Collections;using UnityEngine;using UnityEngine.Rendering;using UnityEngine.Rendering.HighDe

2020-11-09 18:29:52 1763

原创 Unity动态改变材质球Alpha值的一些方法

要做物体的渐隐渐现,一般都是调材质球,当然,也可以不用代码,创建个动画状态机,直接K帧,也可以做到渐隐渐现效果。如果是代码的话,如下咯:using UnityEngine;using DG.Tweening;/* * * Writer:June * * Date: 2020.6.3 * * Function:更改材质球的渲染层级,并渐渐消失 * * Remarks:注意,要先导入动画插件——DoTween * */public class JuneMa

2020-06-03 18:00:10 3258 2

原创 Unity类的序列化

当需要把类的属性序列化在inspector面板上时,直接在类声明上面加[System.Serializable]就可以显示了!例子:在BackGroundSetting里,把这个类作为List,如果要在inspector中把BackGround显示出来,就可以直接在BackGround上面加[System.Serializable]inspector面板效果:...

2020-05-06 16:31:09 1614

原创 Unity虚拟键盘

这是一个网上找的插件,自己改了点东西,方便使用在项目中。暂时不适用中文输入,中文输入可能得调出系统输入法,项目不需要就没去研究了,大伙有兴趣可以研究研究。包含两个类,一个是虚拟键盘类,还一个是文本框输入类。下面直接上代码:using UnityEngine;using System.Collections.Generic;/* * On Screen Keyboard * By...

2020-04-17 11:35:40 7457 8

原创 Unity中关于Mathf的Sin、Cos

在开发设计中,有些需求会涉及数学知识,就我来说吧,最近想到了好想法,然后试着码了一下。做圆的参数方程的时候,卡住了。因为圆的参数方程 x=a+r cosθ y=b+r sinθ(θ∈ [0,2π) ) (a,b) 为圆心坐标,r 为圆半径,θ 为参数,(x,y) 为经过点的坐标。问题出现在cosθ和sinθ了,按常理我们直接Mathf.Cos(_angle*Mathf.Deg2Rad)--...

2020-03-26 10:31:38 14891

原创 Unity文本输入框限制,只能输入数字

/// <summary> /// 文本输入限制事件(输入触发,只能输入数字) tips:利用只要不是正则规定的数就替换成空格 /// </summary> public void InputLimt() { _inputField.text = Regex.Replace(_inputField.text, @"[...

2020-01-07 10:12:37 5205 2

原创 Unity无边框,可拖拽,最大最小化

拖拽:我这里的拖拽是长按窗口,到一定时间就可以拖拽窗口。using UnityEngine;using System.Collections;using System;using System.Runtime.InteropServices;using UnityEngine.UI;using System.Diagnostics;public class SceneSett...

2019-12-12 12:06:18 1502 2

原创 Unity用注册表方式让程序开机自启

unity程序开机自启的方法不只这一种,我觉得这个好用,就记下了。直接上代码吧:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using System;using Microsoft.Win32;/* * * Wri...

2019-12-05 10:46:37 678 1

原创 Unity音频可视化

直接上效果图(初版):参考资料:https://blog.csdn.net/liu_if_else/article/details/51233799 https://blog.csdn.net/noEnoughChief/article/details/82984635新建个空物体"UI"按照自己的需求设置UI的中心点(主要是设置中心...

2019-11-27 10:12:55 4031 11

原创 Unity异步加载场景+进度条

此场景还没完善,之后还会根据进度条的值改变颜色,或连个shadergraph,背景做个序列帧播放等等,不然显得太单调废话不多,直接上干货。效果如下,前面黑色闪一下的是转场黑幕。。。代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using DG.Tweeni...

2019-11-26 10:56:27 263

原创 Unity——用代码实现序列帧动画(动态加载)

最近的项目用SpriteRenderer+Animation的方式播放序列帧,我那项目序列帧很多,项目大小差不多40G。。。unity编辑器里是可以正常播放没问题的,但打包出去后,发现一闪一闪的,什么玩意啊。。。然后搜索了一下文章,看到个大佬写的,换成image播放序列帧就可以了。原文链接:https://blog.csdn.net/SerenaHaven/article/details/...

2019-11-14 11:47:02 5060 7

原创 Unity动态改变粒子的颜色

最近项目有需要动态改变粒子颜色的需求,就记一下吧。主要区别一下:直接看代码,挂到粒子身上就可以了:using System.Collections;using System.Collections.Generic;using UnityEngine;/* * * Writer:June * * Date: 2019.10.30 * * Func...

2019-10-30 14:19:31 7025 3

原创 Unity脚本不用挂载到游戏对象就可执行

通常情况下,新建的脚本要挂载到游戏对象上才能运行,如果在脚本中的方法前使用[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)],可以不用挂载到任何游戏对象上即可在程序运行时执行此方法,方便在在程序初始化前做一些额外的初始化工作。如下代码所示:要注意的是,方法必须是static方法[Runtime...

2019-10-28 20:43:52 4392

原创 Unity通过菜单栏快速创建文件夹

随着项目的扩大,大量素材等资源,应该命好名整理好,便于管理。直接上代码吧,放到项目里,unity编译后窗口菜单上就会出现这个菜单栏。using System.Collections;using System.Collections.Generic;using UnityEditor;using UnityEngine;using System.IO;/* * ...

2019-10-28 16:12:00 2016 2

原创 Unity中用代码动态改变材质球贴图

首先先把贴图放在Resources文件夹下,或者新建一个文件夹,便于管理。并命好名,方便遍历。创建脚本,挂在要动态改变的物体上。using System.Collections;using System.Collections.Generic;using UnityEngine;/* * * Writer:June * * Date: 2019.9.11...

2019-09-11 11:07:16 18517 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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