基础
文章平均质量分 61
昵称好难写
你可以走的很慢,但是你要一直在走。
展开
-
内存优化
1、UGUI优化 1.1、对于不使用的Image之类的,将其RaycastTarget取消勾选,将暂时不触发的Button的Interable也取消勾选。 1.2、利用Sprite Packer 制作图集,图集大小最好为接近2的N次方 2、NGUI优化 2.1、利用Atlas Maker 制作图集 , 图集尽量制作为接近2的N次方大小,图集打包大小要为2的n次方的正方形图集,不要为长...原创 2018-03-22 15:08:04 · 274 阅读 · 1 评论 -
Unity从流中读取各种类型的数据和写入数据(利用MemoryStream关于内存数据的读写)
1、主要是对MemoryStream.cs这个类的封装操作,自己重写了一个类继承自该MemoryStream类,并添加了对流写入short ,ushort,int,uint,long,ulong,float,double,bool,string等类型数据的写入和其在流中读取出该数据类型的方法。using UnityEngine;using System.Collections;usin...原创 2018-05-03 15:46:23 · 4127 阅读 · 0 评论 -
VR---UGUI---UI物体出现在摄像机正前方
通过改变那个UI的Canvas位置和角度实现的 public void SetPosition() { Vector3 pos = m_Camera.transform.position + m_Camera.transform.forward * 7; Quaternion q2 = Quaternion.LookRotation(m_Cam...原创 2018-04-12 16:44:15 · 3279 阅读 · 1 评论 -
优化转载
转载于> http://www.cnblogs.com/zblade/介绍: 在游戏运行的时候,数据主要存储在内存中,当游戏的数据在不需要的时候,存储当前数据的内存就可以被回收以再次使用。内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使用的过程。 Unity中将垃圾回收当作内存管理的一部分,如果游戏中废弃数据占用内存较大,则游戏的性能会受到极大影...转载 2018-10-19 10:51:04 · 212 阅读 · 0 评论 -
Unity里用到的Json文件存取工具收集
一、序列化插件FullSerializer下载链接Github–FullSerializer插件下载链接1.1、利用FullSerializer插件,操作Json文件存取//序列化之后存贮json文件protected void SaveJsonFile<T>(string path, T data) where T : class { fsData s...原创 2018-10-09 14:37:44 · 1441 阅读 · 1 评论 -
Unity本地时间记录运用
using System;using UnityEngine;public class Invinciable : MonoBehaviour{ /// <summary> /// 开启无敌模式时剩下时间,以秒为单位 /// </summary> private int invincibleTime; /// <summ...原创 2018-08-27 16:05:41 · 945 阅读 · 0 评论 -
向手机缓存区写入Text
1.PC端读取Resources文件夹下的.txt文件,并解析分为一行一行存入ArrayList 2.Android端如果文件不存在则在缓存区创建一个.txt,并将Resources文件夹下.test.txt文件信息复制写入新创建的.txt中 /// <summary> /// 获取当前平台路径 /// </summary> void GetPlatformPath()原创 2017-12-13 13:42:17 · 289 阅读 · 0 评论 -
基本动画状态机制作理解
1、基本框架搭建 1.1首先创建一个枚举类来定义玩家的各个状态,我定义了四种基本状态,可根据具体的要求自我添加状态。public enum PlayerState{ Idle, Run, Walk, Die}1.2、创建一个动画状态机控制器类—–PlayerFSMMgr.cs,该类管理玩家所有状态的切换 再创建一个玩家所有状态的基类,......原创 2018-05-02 18:13:52 · 709 阅读 · 0 评论 -
查找某个文件夹下某个后缀名的所有文件中的中文
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using System.IO;using System.Text.RegularExpressions;using System.Xml;public class CheckChineseTool...原创 2019-09-04 20:47:51 · 743 阅读 · 0 评论 -
加载Excel表
方法一: 准备工作:(1)将一个.csv的excel文件存放于Assets\Resources\Config文件夹下面 ///创建一个单例类模板 public class Singletonwhere T:new () {class SingletonCreator{ internal static readonly T instance = newT();}public s...原创 2017-11-21 11:25:57 · 201 阅读 · 0 评论 -
动态加载本地bundlel类型的Atals并赋值给NGUI的UISprite里
static class Test{[MenuItem(“工具/加载Atlas”)]static void LoadAtlas(){Transform rootParent = null;Transform[] transforms = Selection.transforms;//提取出选中的对象if (transforms != null && transforms.Length > 0){rootParent = transforms[0];}//Atlas原创 2020-10-28 14:29:18 · 274 阅读 · 1 评论 -
AseetBundle学习记录
一、定义AssetBundle是一种包含特定平台非代码资源的存档文件。例如模型、贴图、预制、音频文件、甚至是整个场景等。资源使用Unity提供的一种用于存储资源的压缩格式打包成AssetBundle.可在运行时候动态加载。使用AssetBundle动态加载资源首先要获取AssetBundle对象,第二步才是从AssetBundle中加载目标资源,然后再实例化目标资源。二、AssetBundle的具体开发流程一般情况下AssetBundle的具体开发流程如下:(1)创建Asset bundle,开发原创 2021-04-09 17:48:36 · 138 阅读 · 0 评论 -
Lua学习之弱引用理解
最近看tolua的协同,它里面有用到一个__mode 的字段,如下所示:local comap = {}local pool = {}setmetatable(comap, {__mode = "kv"})好奇他是干什么用的就去了解了一下。原来他就是lua的弱引用,是一个用来优化垃圾回收器进行垃圾回收的机制。Lua垃圾回收机制Lua 采用了自动内存管理。 这意味着你不用操心新创建的对象需要的内存如何分配出来, 也不用考虑在对象不再被使用后怎样释放它们所占用的内存。Lua 运行了一个垃圾收集原创 2022-04-07 10:04:09 · 1008 阅读 · 0 评论 -
Lua基础学习记录
1、基础概念upvaule: 外部局部变量,一个函数内部引用的变量,是一个外部的变量,但又不是一个全局变量。闭包:调用含有一个内部函数加外部函数持有的外部局部变量的外部函数产生的一个实例函数。即闭包是一个函数的实例,这个函数持有一个外部局部变量,还有一个内部函数。2、实例学习 function myFunc() local a=0 return function()//尾调用 a+=1 return a原创 2022-03-23 12:21:06 · 108 阅读 · 0 评论 -
滑动返回坐标Vector2方向判别
原理如下图所示 代码判断为 Vector2 m_Dir; if (m_Dir.y < m_Dir.x && m_Dir.y > -m_Dir.x) { //向右 Debug.Log("向右"); } e...原创 2018-03-09 15:35:52 · 960 阅读 · 0 评论 -
UGUI与NGUI在Unity制作图集方式
一、UGUI制作图集 UGUI如果将会自动打包图集,Project Seting >>Editor>>Sprite Packer的Mode需要设置为Always Enabled 1.1选择一张图片,将其Texture Type 设置为Sprite,UGUI是自动为你制作图集,会根据你的Packing Tag将名字相同的打包到一个图集之上。 1.2、你可以在工具......原创 2018-03-22 16:43:20 · 6162 阅读 · 1 评论 -
Unity 常用射线检测方法
1.普通射线检测(一般用于检测某一个物体)Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Debug.DrawRay(ray.origin ,ray.direction , Color.red); RaycastHit hit; if(Physics .Raycast (ray,原创 2018-03-06 12:14:04 · 45680 阅读 · 2 评论 -
UGUI--------UI以及3D物体显示在鼠标点击位置
1、鼠标的点击的位置—赋值给3D物体 float distance=5; /// <summary> /// 赋值鼠标位置给3D物体 /// </summary> void MouseTo3DPos() { Vector2 mousePosition = Input.mousePosition; ...原创 2018-04-12 16:36:01 · 1016 阅读 · 0 评论 -
Unity读写文件总结
1、StreamWriter和StreamReader 流写入和读取 public void CreatFile(string path) { if (!System.IO.File.Exists(path)) { WriteFile(path); } } /// &amp;amp;lt;summary&amp;amp;gt;...原创 2018-08-27 14:42:02 · 1555 阅读 · 0 评论 -
Unity简单事件系统管理
1、创建事件管理类using System.Collections.Generic;/// &lt;summary&gt;/// 自定义事件方法委托/// &lt;/summary&gt;/// &lt;param name="e"&gt;&lt;/param&gt;public delegate void EventDelegat原创 2018-08-31 16:29:47 · 741 阅读 · 0 评论 -
Unity计算当前FPS
直接上代码using UnityEngine;using System.Collections;using UnityEngine.UI;public class fps : MonoBehaviour{ public Text fpsText; public float fpsMeasuringDelta = 2.0f; private float time...原创 2018-10-10 18:09:10 · 691 阅读 · 0 评论 -
简单UI框架---UIManager
一、简介1.1、UI基类—UIBase1.2、UI第二层基类,继承自UIBase,分别为UIWindowBase(所有窗口的基类)、UISceneBase(场景UI基类)继承自UISceneBase的类都放在UIRoot物体上,而继承自UIWindowBase的类,主要放在窗口上,例如整个登录注册面板的父物体UIPanel物体之上,类似的。1.3、三个基本的管理器:LayerUIMgr(...原创 2018-10-17 14:18:24 · 4229 阅读 · 0 评论 -
各种排序总结
1、冒泡排序我的理解就是,以从小到大排序为例,就是不停 的将最小的排到前面冒出来,或者把最大的,第二大的,一个一个的冒泡到最后。 int[] array1 = new int[] { 2, 4, 3, 7, 8, 5 }; /// &amp;lt;summary&amp;gt; /// 冒泡排序,将小的数不停冒泡到前排。 /// &amp;lt;/summary&amp;gt; ...原创 2018-10-22 12:58:21 · 151 阅读 · 0 评论 -
事件与委托的区别
1.事件只能定义在类的内部,而委托可以定义在类的内部或者外部。事件定义在外部会报错误 2.委托和事件都可在其他类中被间接调用。但是在外部类中委托可=某一个方法,而事件不能,只能+=某一个方法。事件只能在定义该类的内部触发,而委托可以在其他外部类调用触发。using UnityEngine;using System.Collections;using System;public de...原创 2018-03-06 19:14:59 · 1108 阅读 · 0 评论