unity3d
Nice_66
这个作者很懒,什么都没留下…
展开
-
自己写的BMFont导入工具,快速把图片转换为美术字体
配合BMFont工具使用可以快速把图片转换为美术字,在项目中使用美术字体,需要准备一个材质球 一个空白字体,然后自己改一下路径,这两个脚本是分开的 ,先点art。using System;using System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;using UnityEngine.UI;using UnityEditor;public class ArtFont原创 2021-05-18 15:56:59 · 475 阅读 · 0 评论 -
Lua实现简单的A*寻路
--[[A*寻路算法,目前只适用于01图,0可通行,1不可通行--]]--行走的4个方向localfour_dir={{1,0},{0,1},{0,-1},{-1,0},}--行走的8个方向localeight_dir={{1,1},{1,0},{1,-1},{0,1},{0,-1},{-1,...原创 2021-05-18 15:47:48 · 1306 阅读 · 0 评论 -
优化一个Image遮罩,去除掉颜色组件只保留点击响应,透明的且让鼠标点不下去。
using System;using System.Collections.Generic;using UnityEngine;using XLua;namespace UnityEngine.UI{ public class Empty4Raycast : MaskableGraphic { protected Empty4Raycast() { useLegacyMeshGeneration = false; ...原创 2021-05-13 11:18:18 · 333 阅读 · 0 评论 -
U3D滑块中添加粒子特效,出现挡不住的情况,自己写个Mask来挡住
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.Rendering;usingUnityEngine.UI;publicclassUIParticle:MonoBehaviour{privatestaticCamerauiCamera;privateclassMatEntry{...原创 2021-03-17 23:00:47 · 560 阅读 · 0 评论 -
Unity3D计算Text组件渲染全部文字所需要的宽高
我们在项目研发中经常会遇到实时改变文字框大小的需求,大面积使用自适应组件对游戏是一个负担,如果优化这个需求呢,其实Text中有一个preferred属性,可以让开发者知道Text渲染这些文字需要的宽度或者高度。以下贴出一个封装函数,是lua写的。--传入一个Text组件,type是获取高或者宽,自己决定设置什么。--这里是直接把Text组件设置为刚好渲染出框内文字的宽或者高。localfunctionSetTextSize(text,type)localRT=UIU...原创 2021-01-21 17:13:51 · 1630 阅读 · 0 评论 -
游戏开发中道具一键合成思路,多级别道具合成,采用递归方法,简单高效。
在游戏开发中我们往往会遇到道具合成的需求,如果玩家自己一级一级的合成太过繁琐,何不直接一键合成他需要的材料,通过递归来完成计算,从初级材料一级一级的完成合成。以下是LUA开发的递归合成思路。--itemId是需要计算的道具ID--need_num 是需要itemId这个道具的数量localfunctionItemfunc(self,itemId,need_num)--这一步是去道具表去道具信息,如果没有就退出localcfg=assemble_cfg[itemId...原创 2021-01-07 09:56:17 · 1504 阅读 · 0 评论 -
lua和U3D中协程的异同
协程的一般概念:在主线程逻辑运行的同时,开启另一段逻辑处理,以辅助主程序的执行。(一)首先说下unity中的协程。调用方法如下:public Coroutine StartCoroutine(IEnumerator routine);public Coroutine StartCoroutine(string methodName, [DefaultValue("null")] o...原创 2018-07-26 09:16:35 · 1291 阅读 · 0 评论 -
Unity3DAB包分组策略
原创 2018-07-19 20:08:01 · 1675 阅读 · 0 评论 -
C#螺旋矩阵
static void Main(string[] args) { Console.Write("请输入正整数:"); int n = int.Parse(Console.ReadLine()); //读取输入 Console.WriteLine(); int[,] arr ...原创 2018-07-19 14:18:47 · 1726 阅读 · 0 评论 -
Unity3D内置着色器完成图片变灰色的效果
在Shader上加入 float gray = dot(color.rgb, float3(0.299, 0.587, 0.114)); color.rgb = float3(gray, gray, gray);原创 2018-07-19 10:33:21 · 1305 阅读 · 0 评论 -
Untiy3D Mipmap
启用Mip Maps对内存的影响是?() 增加约33%的内存Mipmap技术有点类似于LOD技术,但是不同的是,LOD针对的是模型资源,而Mipmap针对的纹理贴图资源使用Mipmap后,贴图会根据摄像机距离的远近,选择使用不同精度的贴图。缺点:会占用内存,因为mipmap会根据摄像机远近不同而生成对应的八个贴图,所以必然占内存!优点:会优化显存带宽,用来减少渲染,因为可以根据实际情况,会选择适合...转载 2018-07-13 11:25:16 · 409 阅读 · 0 评论 -
请简述GC(垃圾回收)产生的原因,并描述如何避免?
当我用new创建一个对象时,当可分配的内存不足GC就会去回收未使用的对象,但是GC的操作是非常复杂的,会占用很多CPU时间,对于移动设备来说频繁的垃圾回收会严重影响性能。下面的建议可以避免GC频繁操作。 1)减少用new创建对象的次数,在创建对象时会产生内存碎片,这样会造成碎片内存不法使用2)使用公用的对象(静态成员,常量),但是不能乱用,因为静态成员和常量的生命周期是整个应用程序。3)在拼接大量...转载 2018-07-13 09:51:04 · 10404 阅读 · 0 评论 -
c#单独开启线程方法
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace _004_线程{ class Program { static int Test(i...原创 2018-07-06 16:31:13 · 2299 阅读 · 0 评论 -
C#TCP和UDP
原创 2018-07-13 09:30:14 · 326 阅读 · 0 评论 -
C#解析XML
public void handleLoginOk(XDocument o) { print("handleLoginOk"); //var params:Object = {}; //params.success = true; //params.error = ""; var id = (from ele in o.D...原创 2018-07-12 18:17:24 · 281 阅读 · 0 评论 -
c#File文件操作
//FileInfo fileInfo = new FileInfo(@"D:\unit3D作业\文件操作\文件操作\TextFile1.txt"); //Console.WriteLine(fileInfo.Exists);//判断是否找到了该文件,找到了返回ture //Console.WriteLine(fileInfo.Name);//取得文件名...原创 2018-07-16 10:09:52 · 220 阅读 · 0 评论 -
xlua和c#交互
using System.Collections;using System.Collections.Generic;using UnityEngine;using XLua;public class xluafile : MonoBehaviour { private LuaEnv xluafiles; // Use this for initialization ...原创 2018-07-31 10:38:13 · 781 阅读 · 0 评论 -
c#栈
原创 2018-08-06 20:15:26 · 249 阅读 · 0 评论 -
lua生成随机数,设置随机数种子
lua需要生成随机数的需求也是很常见的,为了生成看起来更随机的数字,我们需要注意以下几点我们也需要给随机数设置随机数种子:math.randomseed(xx) lua对随机数种子也是有一定要求的:不能太相近 lua中的os.time()是基于秒的,不太满足lua对随机数种子的要求(如果设置随机数种子的频率太高的话)那怎么做?把 os.time()返回的数值字串倒过来再取高位7位。 这...转载 2019-09-12 15:10:41 · 2853 阅读 · 0 评论 -
DOTween插件动画播放的曲线设置,取消缓动采用匀速的方式。
主要采用的是SetEase方法transform.DOMoveX(4, 1).SetEase(Ease.Linear);参考缓动的枚举来设置自己的缓动数据DOTWeen缓动枚举 public enum Ease { Unset =0, Linear =1, InSine =2, OutSine =3, InOutSi...原创 2019-08-28 14:56:29 · 5029 阅读 · 0 评论 -
高性能的Unity3DScrollView组件,仅适用部分特定的滑块需求
using System;using System.Collections.Generic;using UnityEngine;using UnityEngine.Events;using UnityEngine.UI;using XLua;/// <summary>/// 高性能ScrollView/// </summary>[RequireComp...原创 2019-07-16 14:26:27 · 444 阅读 · 0 评论 -
帧同步
农药自从上线以来,依靠着强大的产品力以及腾讯的运营能力,在游戏市场上表现可谓是风生水起,根据第三方的调研数据显示,《王者荣耀》渗透率达到22.3%,用户规模达到2.01亿人,每日的日活跃用户(DAU)均值为5412.8万人。 如此可观的数据,令人十分钦佩。当然了,作为技术人,更愿意从技术上了解去一些王者荣耀的实现原理和架构方式,从中找到新的知识领域,扩展自己的知识边界,丰富自己的专业技能。借助这...转载 2019-03-04 20:49:39 · 785 阅读 · 0 评论 -
Unity3D LUA开发代码规范
一:命名规范:1、类命名:驼峰式命名:单词首字母大写,如:GetInstance2、函数命名:同类名3、公有变量命名:同类名4、私有变量命名:小写,单词之间用“_”分隔,如:self.action_list5、局部变量命名:同私有变量6、参数名命名:同私有变量7、任何情况下不应该由外部访问的成员,使用双下划线打头,其它同私有变量命名,如:析构函数__init,内部成员s...原创 2018-10-30 13:49:27 · 1155 阅读 · 1 评论 -
预编译脚本不再报错代码
#pragma warning disable 0618原创 2018-09-11 14:55:01 · 326 阅读 · 0 评论 -
DoTween常用的API
using DG.Tweening;public class MyText : MonoBehaviour { private Text text; // Use this for initialization void Start () { text = this.GetComponent<Text>(); text....原创 2018-09-11 14:33:52 · 2313 阅读 · 0 评论 -
Unity3D项目优化方案
使用UnityAssetCleaner清理项目中没有使用的文件原创 2018-08-26 17:33:51 · 631 阅读 · 0 评论 -
链表
原创 2018-08-06 20:16:43 · 215 阅读 · 0 评论 -
C#Socket编程,TCP协议收发消息
服务器端static List<Client> clientList = new List<Client>();//储存了连接上的客户端 /// <summary> /// 广播消息 /// </summary> /// <param name="message"></para..原创 2018-07-12 11:25:50 · 460 阅读 · 0 评论 -
c#DebuggerStep Throug 特性调试的时候跳过此方法进行调试
DebuggerStep Throug 加在方法前,可以让调试直接跳过此方法,当你确定此方法不会出问题的时候,可以减少调试的量。原创 2018-07-05 15:22:49 · 460 阅读 · 0 评论 -
Unity3D 优化渲染系统的理论知识(一)
原创 2018-06-13 14:28:54 · 737 阅读 · 0 评论 -
Unity3DCPU优化方法相关理论知识
原创 2018-06-13 14:10:28 · 178 阅读 · 0 评论 -
Unity3D 物理系统优化理论
一句话概括:优化物理系统其实就是在物理计算的精度和CPU的频率之间找到平衡点。转载 2018-06-13 11:57:58 · 680 阅读 · 0 评论 -
不用C#的库函数,实现将字符串转换为int类型的整数
static void Main(string[] args) 2 { 3 string numStr = "-177.00"; 4 int num; 5 string isSuccess=IntParse(numStr, out num)?"Yes":"No"; 6 Co...原创 2018-06-05 17:06:19 · 427 阅读 · 0 评论 -
Unit3D利用LineRender断笔写字功能实现 版本为2018.1.
一、新建一个项目然后创建一个GameObjek对象,然后挂上脚本;二、创建LineRender对象新建一个空物体,然后添加LineRender组件,并设为预制体,然后删除此物体,只保留预制件。三、建立背景创建一个Quad,在创建一个黑色的材质球,添加到Quad上,把Quad的sizd属性设为10.10.10,让其充满Game窗口整个屏幕。四、创建一个贴图可以为自己的笔画添加贴图,让其展现不同的图片...原创 2018-05-17 17:59:10 · 895 阅读 · 0 评论 -
unity3D点击触发摄像机发出射线
if (Input.GetMouseButton(0)) { Debug.Log("xxxxxxxxxxxxxxxxxxxxxx"); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//从摄像机发出到点击坐标的射线 RaycastHit h...原创 2018-04-25 10:02:45 · 4002 阅读 · 0 评论 -
MonoBehaviour的继承关系
Create继承MonoBehaviourMonoBehaviour继承Behaviour;Behaviour继承Component;Component继承Object原创 2018-04-04 13:54:27 · 475 阅读 · 0 评论 -
c#和.NETd的区别,简洁版
1) 关系简介C#的架构反应了.net的方法体系;C#的多种语言特征要依赖于.net4.5提供的核心基础类库:IL提供的核心特征Windows UI 和 controlshttp://ASP.NET Web页面和MVChttp://ADO.NET和XML文件系统.Networking 和网页浏览.NET特性和反射COM interoperability 简单来说:C#要依赖于.net fram...原创 2018-04-11 09:44:54 · 226 阅读 · 0 评论 -
unity3D,完美像素问题,UI发虚和锯齿的问题
Pos x,和 Pos y的值不能为小数,不然会和完美像素冲突,UI会显示虚的,看不清楚的情况。原创 2018-04-03 15:54:49 · 4282 阅读 · 0 评论 -
unity3d必考题1 coroutine
协程可以加分:与线程最大的不同是,coroutine的调度/挂起/执行开发者是可以控制的.转载 2018-04-16 11:14:55 · 164 阅读 · 0 评论 -
unity3D用图片当做字体显示————点阵字体概念
点阵字体是把每一个字符都分成16×16或24×24个点,然后用每个点的虚实来表示字符的轮廓。点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示。 字体结构点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示。这种文字显示方式于较早前的电脑系统(例如未有图形接口时的DOS操作系统)被普遍采用。由于位图的缘故,点阵字体很难进行缩放,特定的点阵字体只能清晰地显示在相应的字号下,否则文字...原创 2018-04-16 10:40:41 · 1322 阅读 · 0 评论