自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UnityLog插件

using System.Collections;using UnityEngine;using System.IO;public class SaveLog : MonoBehaviour{ private float length; Queue queue; private void Awake() { DontDestroyOnLoad(this); LogToFile("Version of the runtime: "

2022-05-20 16:26:14 443

原创 一、如何在Unity编辑器中修改属性值及查看改变效果

为了在Inspector面板中修改值,使用一个枚举值即可,在Unity引擎中可以当引擎内部发生调用或者改变时在OnValidate函数中进行调用。

2022-05-05 10:48:48 3458 1

原创 笔记-共享材质

1.首先为什么在项目中我们需要使用共享材质?因为在引擎中有一套自己的优化机制,一般会按照材质对需要渲染的堆型进行排序,同一个材质的会默认合并在一起进行渲染。2.什么是共享材质?RenderMaterial 是指共享材质,它相比Material 性能更好。...

2022-05-05 10:28:44 137

原创 Unity WebGL Apache Windows本地服务端搭建

Unity WebGL Apache Windows本地服务端搭建1.下载 TomcatTomcat下载:https://tomcat.apache.org/2. 下载 JDKJDK 下载:https://www.oracle.com/java/technologies/downloads/4. 设置系统变量1.新建JAVA_HOMED:\Program Files\Java\jdk-17.0.22.新建CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOM

2022-04-08 17:29:20 3758 1

原创 WebRTC-Andorid

目录一、前言二、实现2.2、先安装依赖组件WebRTC和InputSystem2.3、安装Unity Render Stream包并且导入案例工程2.4、安装WebServer并运行2.5、运行Unity案例三、总结一、前言我使用的是Unity个人版,个人版的激活方法可以自行百度,我在个人版的Hub中下载并安装了unity2019.4.28。在这过程中几次都没能跑起来,我在此做一个总结。一定要自己看官方教程网上杂七杂八的讲的不知所云、没头没尾的浪费了很多时间。本篇也是基于官网做的一个梳理

2022-03-07 14:02:41 125

原创 Hololens 凝视 延迟调用

该脚本将凝视功能与本地UI事件绑定在一起using Microsoft.MixedReality.Toolkit.Experimental.UI;using Microsoft.MixedReality.Toolkit.Input;using System;using UnityEngine;using UnityEngine.Events;using static TMPro.TMP_InputField;/// <summary>/// 用于凝视辅助/// </su

2021-11-08 18:57:15 165

原创 Vuforia 摄像头控制

// 关闭相机public void CloseCameraDevice () { CameraDevice.Instance.Stop(); CameraDevice.Instance.Deinit();} // 打开相机public void OpenCameraDevice () { CameraDevice.Instance.Init(CameraDevice.CameraDirection.CAMERA_DEFAULT); CameraDevice.I

2021-11-08 10:20:45 330 2

原创 MD5加密与解密

在脚本中引用:using System.Security.Cryptography;加密/// <summary> /// 加密 返回加密后的结果 /// </summary> /// <param name="toE">需要加密的数据内容</param> /// <returns></returns> private static string Encrypt(string toE)

2021-11-01 17:26:08 1276

原创 Unity字符串加密

/// <summary> /// 字符串转为UniCode码字符串 /// </summary> /// <param name="s"></param> /// <returns></returns> public static string StringToUnicode(string inputText) { char[] charBuffer = in.

2021-11-01 17:17:00 339

转载 MD5 加密

MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来, 经md2、md3和md4发展而来。MD5具有很好的安全性(因为它具有不可逆的特征,加过密的密文经过解密后和加密前的东东相同的可能性极小)sharp demousing System;using System.Security.Cryptograp

2021-11-01 16:52:39 87

原创 00-数据结构之动态数组

1.什么是静态数组?静态数组如:int[] , float[] , string[] ,等数组。特点为:数组长度不变、数组数量不变。2.什么是动态数组?动态数组分为List、ArrayList特点为:有初始化长度,后期添加长度会增加。```csharpList<int> l=new <int>(3);ArrayList[] ls=new ArrayList[]...

2021-10-27 10:02:32 183

转载 Unity中存在的坐标系

在不同的情况下使用不同的坐标系更加方便,所以在Unity中有多种坐标系:全局坐标系 World Coordinate System局部坐标系 Local Coordinate System屏幕坐标系 Screen Space视口坐标系 ViewPort Space全局坐标系    全局坐标系是用于描述场景内所有物体位置的方向的基准,也称为世界坐标系。    在Unity中创建的物体都是以全局坐标系中的坐标原点(0,0,0),来确定各自的位置的。    可以使用transform.posit

2021-10-22 17:20:08 593 1

翻译 基于Hololens开发---本地化空间锚点

基于Hololens开发—本地化控件锚点本地化空间锚基于Hololens的空间映射,本项目本章内容主要是对Hololens端的离线瞄点进行保存,当再次启用项目时将数据进行读取重置当前位置。具体过程见“注释”public class SpaceAnchorController : MonoBehaviour{ public string ObjectAnchorStoreName; WorldAnchorStore anchorStore; bool Placing = fa

2021-10-21 15:33:05 2095

原创 摄像机仿真组件

/**************************************************** 文件:CameraComponent.cs 作者:Du.Sir 邮箱: 2455421531@qq.com 日期:2020/6/4 4:31:31 功能:摄像机组件类*****************************************************/using System.Collections;using System.Collecti.

2021-05-06 15:39:58 127

原创 读取StreamingAssets文件夹下的图片

StreamingAssets:可以访问;StreamingAssets文件夹读:(1)获取地址:通过(Application.dataPath)获取本地地址,然后加上文件夹地址。(2)读取文件:通过流数据读取文件夹中的文件。(3)转换数据:将数据转换为流数据。(4)转换:使用LoadImage进行转换。public class ExplainFun : MonoBehaviour{ public Image ShowPic=null ; void Start() {

2021-02-28 21:23:26 2974 2

原创 Unity仿真拖拽旋转

PC端拖拽模型实现仿真using UnityEngine;using System.Collections; public class FreeView : MonoBehaviour { //观察目标 public Transform Target; //观察距离 public float Distance = 5F; //旋转速度 private float SpeedX=240; private float SpeedY=120; //角度限制 private

2021-01-04 17:19:48 214

原创 Unity 模型在移动端进行移动、旋转和放大(缩小)

using System.Collections;using System.Collections.Generic;using UnityEngine;public class RotateControl : MonoBehaviour{ //float xSpeed = 100f; //float ySpeed = 100f; float x = 0f; float y = 0f; float Speed = 0.01f; /// &lt

2020-12-23 16:32:44 1905

翻译 Unity3D-Text空格造成自动换行+自定义Text

一、Text空格造成自动换行在开发的过程中遇到一个问题,当Text的文本中有空格时,会造成空格后的字不显示,(目标是当内容超出时多余的字不显示,其中Text的Horizontal Overflow 设为 Warp)如下:拉长控件后发现是因为空格后的字当作了一个整体,所以被换到下一行了。后来知道了这不是unity的bug,因为这个功能是用于英语等西文的,保证了单词不会分开显示。但我们这里的“圣地亚哥”也被当做一个单词整体换行了,不是我们想要的。我们要做的是将其中的换行空格变成不换行空格就行了。即我们

2020-12-15 21:29:56 2398

原创 Unity场景加载进度条优化

Unity场景加载进度条优化1. 场景进度条优化Du先生开发游戏**为了增加游戏体验,我在日常会对进度条进行优化。通常通过异步的方式加载场景,从而获取场景进度。为了增加游戏体验,会使用两个变量一个变量接受场景的实际加载进度,另外一个用来接受UI显示进度。使用显示进度向实际进度靠近的方式显示进度条。主要代码如下:public Slider slider_loader; private void Start() { StartCoroutine(LoadSliderSy

2020-09-22 21:49:27 732

原创 ET框架笔记 02生命周期

一、ET框架的生命周期在ET框架中拥有一套从出生到死亡的生命周期,在Unity中类是于Unity中的生命周期。我们在生命生命周期时候我们需要给他挂载[ObjectSystem],并且让他继承对应的方法。ET框架采用的热更新使用的是ILRiTime使用的是c#进行热更。 [ObjectSystem] public class LandLoginComponentAwakeSystem : AwakeSystem<LandLoginComponent> { pu

2020-06-25 11:10:03 415

原创 ET框架笔记 01 组件似开发基于ECS架构

添加:AddComponent<头>(),AddComponen(new tou())删除:RemoveComponet<头>(),删除后,把组件推到Game.ObjectPool里获取:GetComponent<头>();Entity:当你需要这个组件下面可以挂载的情况下使用。(当相当别人的父亲或者祖中的时候挂载)Componemt:当你不需要这个组件下面再挂载其他组件的情况下使用。(当我这个是手,我下面不需要挂载其他组件的时候我们就是用ComPonemt(儿子

2020-06-25 11:02:27 230

转载 SynchronizationContext

SynchronizationContext在通讯中充当传输者的角色,实现功能就是一个线程和另外一个线程的通讯。需要注意的是,不是每个线程都附加SynchronizationContext这个对象,只有UI线程是一直拥有的。故获取SynchronizationContext也只能在UI线程上进行SynchronizationContext context = SynchronizationContext.Current;那什么时候会用到呢?在多线程操作时往往需要切回某个线程中去工作,等完成后再切回来。

2020-06-17 17:02:07 2251 2

原创 PETimer

PETimer1.双端通用:基于C#语言实现的高效快速计时器,可运行在服务器(.net core / .net框架)以及Unity客户端环境中。2.功能丰富:PETimer支持帧数定时和时间定时。定时任务可循环,可替换,可取消。可使用独立线程计时(自定义设置检测间隔),也可以使用外部驱动计时,可以使用MonoBehaviour中的Update()函数来驱动。3.集成简单:只有一个PETimer.cs文件,只需实例化一个PETimer类,对接相应的API,便能整合进自己的游戏框架,实现便捷的高效的定时服

2020-05-15 20:17:26 280

原创 无限循环卡片

王者荣耀选择皮肤的效果大家都应该知道吧。一张张的卡片选择,今天给大家一个类,就可以实现这个功能。功能只提供了一些基本的,根据需求不同,也要各位自己做扩展。废话不多说,看代码using UnityEngine;using System.Collections;using UnityEngine.UI;using DG.Tweening;using System;enum FINGER { FINGER_STATE_NUL, FINGER_STATE_TOUCH, FINGER_STATE_AD

2020-05-15 16:14:37 345

原创 Unity中的FSM有限状态机

在Unity中的有限状态机其实就是控制人物状态的一种模式,就是通过两个具体的枚举进行切换,通过这种方式来给我们做NPCAI的时候进行解耦,今天我制作了一个有限状态机,在状态机中主要就是两个类一个是FSMstate类(简称状态类),另外一个就是FSMSytem(核心状态管理类)。在类核心内中存储状态。在FsmsTATE中添加状态切换。在这个类中类是我们的对象池。大池子就是核心状态类,小池子就是状态类,通过状态ID在大池子中找状态。在状态中限制装状态的切换。这两者都是通过面向对象的编程思想“存储也称为缓存”。

2020-05-13 22:18:06 386

原创 Unity写入和读取文本文件

Unity写入和读取文本文件打开文件并写入:void CreateOrOPenFile(string path, string name, string info){ //路径、文件名、写入内容 StreamWriter sw; FileInfo fi = new FileInfo(path + "//" + name); sw = fi.CreateText (); //直接重新写入,如果要在原文件后面追加内容,应用fi.AppendText() sw.Wri

2020-05-11 15:18:27 1312

原创 TCP粘包分包问题的解决方案

1.在我们写TCP服务端的时候经常会出现粘包和分包的问题把,这里让我来分享我的结局方案把。原理:之所以会出现粘包是TCP为了节约性能做出的处理,我们可以通过对数据的处理来进行解决这个问题。客户端**我们可以通过在客户端发送请数据的时候把客户端的数据长度放在数据长度放在数据前转换成Byte类型一起发送给客户端;客户端代码如下 Socket socket_Cliect = new So...

2020-02-27 21:14:18 552

原创 MVC框架在Unity3D中的应用

Unity中的MVC框架1.图片解析2.个人总结MVC框架各个模块的代码单列模块MonoSingleton用于结局平凡的使用单列带来的繁琐。public class MonoSingleton<T> : MonoBehaviour where T:MonoBehaviour{ private static T m_Instance; public ...

2020-02-25 21:56:38 251

空空如也

空空如也

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

TA关注的人

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