自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (3)
  • 收藏
  • 关注

原创 js内存优化帮助

文章目录首先说明,以下内容是对大神文章的笔记,大神文章链接:了解堆栈变量和函数的储存位置垃圾回收机制(原文关键字:垃圾回收)v8隐藏类机制(关键字:隐藏类)闭包(关键字:Closure)至此,文章看了一半,剩下的是对开发者工具的内存分析工具的使用(关键字:Memory in Devtools)首先说明,以下内容是对大神文章的笔记,大神文章链接:JavaScript 内存详解 & 分析指南了解堆栈a.栈内存由windows系统直接管理,我们一般不需要操心,我们的内存管理都是对堆内存的处理b.

2021-06-23 16:24:00 146 1

原创 typescript 中的 Mvvm 框架底层原理

文章目录需要的基础知识基本思想对象 Object数组 Array实现 JsonOb使用 JsonOb需要的基础知识需要了解一些底层的知识才能往下走哦,请前往另一个博客基本思想对象 Object对于 object ,就是改变这个对象的属性,通过重写这个属性的 get 和 set就可以在 set 里面进行需要的操作当一个属性被赋值时,我们在 set 的时候去做一些其他的操作比如发送某一个事件,告诉外部这个变量发生了改变,这个就是 Mvvm 框架所使用的数组 Array对于数组,我们需要对数

2021-03-20 18:28:19 468

原创 u3d 工具写法:实现根据预设模板和配置,生成预设物体

[MenuItem("Tools/根据预设生成物品")] public static void CreateDocTemplate() { //获取事先做好的预设 GameObject templatePrefab = AssetDatabase.LoadAssetAtPath("Assets/Resources/Prefabs/DocTemplate/ResPrefab/Template_doc.prefab", typeof(GameObject)) as G.

2021-01-20 14:47:29 181

原创 Cocos creator 与 Android Studio方法互相调用并传参

Cocos creatorexport enum NativeToCCMessage{ OnAfterInit = "OnAfterInit",}export class NativeHelper{ public static HasJSB():boolean { return CC_JSB; } /** * ``` * ios 调用格式为 (类名,静态方法名:参数名1:参数名2:,参数1,参数2):返回值<n

2021-01-15 11:00:31 1686 1

原创 VM15装 macOS 简单步骤

VM15装 macOS 简单步骤,环境建议处于windwos 10 64bit:1、重启电脑进入BIOS,进入高级选项(Advanced),将VT相关支持确保打开(Enabled);2、进入操作系统,拷贝VM15.5、unlocker3.0.3、darwin、macOS Catalina 10.15.5(19F96).cdr 至桌面:安装VM15,安装最后一步记得输入破解序列号,结束后关闭勿打开软件,打开任务管理器或组策略,停止VMware相关服务及进程;(先停VMnetdhcp、VMUSBArbS

2020-08-14 10:52:46 258

原创 U3D MvvM框架中的数据绑定(c#)

数据驱动用处以及缺陷设计思路上代码使用方式用处以及缺陷Mvvm 框架中有一个很重要的思想就是数据绑定,比如某一个数据改变了,有许多界面上的东西也要相应的改变,这个时候就可以在不同的地方写一个方法,将这个方法绑定到某个数据上,当数据发生改变时,将触发调用所有绑定在这个数据身上的方法这里有一个不如意的地方,一个数据可以被多个方法绑定没问题的,但是如果一个方法绑定了多个数据,那么每当其中一个数据变动,那么就会调用这个方法,所以一个数据的变动直接决定了一个方法的调用结果,无法由多绑定的那多个数据变化结果来共同

2020-05-15 17:05:30 812

原创 U3D_摄像机场景漫游

选中摄像机,打开Windows里面的Animation点击Create创建一个文件夹存放动画点击Add Property,选择Transform里面的Position点击Add Property,选择Transform里面的Rotation如图,选择不同的时间点之后,在场景中改变射线机的位置和角度就可以做到场景漫游...

2019-10-10 18:45:37 330

原创 射箭轨迹(虚线)

根据鼠标按下的坐标和拖动后产生的坐标的方向向量,乘与参数,获取力的大小获取轨迹的起始点利用F=ma计算出起始速度v=F/m*t.利用函数Math.sqrt(v.x*v.x+v.y*v.y)取模,即速度大小velocity根据180/Math.PI*Math.atan2(v.y,v.x)获取速度方向与x轴的夹角angle根据velocity*t*Math.sin(angle*Math.P...

2019-10-10 18:45:22 526

原创 Egret开发笔记[七]:解耦方式之,挂接解耦

需求首先,需求是这样的。战斗结算界面(就是战斗结束后会有一个界面显示这场战斗的得失)要显示一些东西。这些东西并不是固定的,比如,今天有可能要显示“国庆快乐”,明天又是要显示一幅图。此处将会举例显示一个组件,因为组件上可以放任何你需要显示的东西。难点如果需要显示什么,就手动在这个界面上,加什么。那么后面要改变的时候,也同样需要手动修改。甚至如果不需要显示的时候,还要手动删除,这样的维护成本...

2019-10-10 18:42:14 160

原创 Egret开发笔记[六]:循环执行管理器

有些游戏状态要随着时间的变化而变化,比如:每分钟提醒玩家充值…这个功能…一个单例完美解决思想: 将需要执行的方法注册进来,每隔一段时间,执行一个或者几个方法.class LoopExecuteManager { private _dic:{[key:string]:{fun:()=>void,caller:any}}; private _list:{fun:()=>void,...

2019-05-21 11:09:43 426

原创 Egret开发笔记[五]:一个状态变化牵扯多对象方法处理法

文章目录为何采用这种方法实例分析:红点状态改变RedPointManager使用方法为何采用这种方法一个状态的改变牵扯多个对象,比如玩家获取了一件物品.此时可以解锁某个关卡,也还使得玩家战力提升,还使得玩家可以拥有更多的背包格子.好像可以用事件的处理机制来处理这种事情,当玩家获取物品时,派发事件,在多个事件里面监听.但是这种有个弊端,并不是同步,且针对性不强,且无法及时去除事件的监听.实...

2019-03-02 11:23:35 424

原创 Egret 开发笔记[三]:多按钮注册监听

首先在 UI 面板的父类UIBase中写下这些方法 protected _buttonList: Array&lt;UIButton&gt;; /** * 注册按钮 在onClick里面,判断按钮的名字以区分点的是哪个按钮 */ protected registerButtons(container: fairygui.GComponent = null...

2019-02-13 11:50:54 574 3

原创 Egret开发笔记[二]

//定义静态变量 public static currentFrame: number = 0; //权 private static framesCallBackList: CallBackVo[] = []; //回调方法 /* *把回调添加到 framesCallBackList 中 */ static addFramesCallBack(p_callBac...

2019-01-03 14:59:51 448

原创 TypeScript之不容易查到的语法(一:声明方法)

写一个方法匿名方法():void{ console.log("123");}此方法直接写在一个函数里面,输出:123相当于调用了这个方法public fu():void{ console.log("123");}非匿名方法var str = (a:number)=&gt;{ return a+"123";}var value = str("123");...

2018-11-13 16:45:18 364

原创 EgretH5游戏开发笔记(一)

些容易导致掉帧的原因矢量图(图形)不要用矢量图,点击区域可用空的组件替代,遮罩的bar用位图替代比如fgui不要用图片装载器画一个图.遮罩尽量少的用遮罩,有些《静态》地方没办法必须要用遮罩的(比如头像要切成六边形),必须cacheAsBitmap尽量少的用遮罩,有些《静态》地方没办法必须要用遮罩的(比如头像要切成六边形),必须cacheAsBitmap组件元素太多(在列表元...

2018-11-13 16:22:58 3535

原创 ts代码规范问题[三]

异步问题判断长度传参问题异步问题this.scheduleOnce 因为是异步的,所以在这个里面写代码需要添加判断,很有可能你基础需要的东西已经不在内存了.回调 同样的道理,函数回调也有可能引起一样的问题判断长度使用string类型参数时,不仅需要判空,有可能会是一个 “” ,那也不等于null,所以还需要判断这个参数的长度是否为...

2018-08-09 10:59:56 2167

原创 ts代码规范问题[二]

判空命名划分判断级别尽量避免使用回调控制做判断消耗性能自定义枚举变量计算判空当需要获取一个决不允许为空的游戏物体的时,不要在代码里通过名字或标签之类来获取,直接定义成属性在编辑器界面拖入.判断一个参数是否是自己想要的,不是就return;在这种情况下,return之前先输出警告,方便以后查找问题.当方法的参数为引用类型时,全部需要判断是否为空...

2018-08-01 09:12:30 2252

原创 代码规范问题

判断异常值数组索引问题命名问题之英语语法问题判断异常值在取数组和字典的值时,要加判断。主要是避免取出来的值为空和非理想值而造成的问题。取用别人传的值,或者等待别人调用本类的方法时候,要对获取到的值进行检查,避免不理想的值导致的问题。数组索引问题取用别人传的值或者自己计算出来的值来给当数组索引获取对应的值的时候需要进行越界判断,避免数组越...

2018-07-25 16:07:21 206

原创 C# 网络编程基础,socket篇[二]

1. 粘包,分包问题根据[一]篇的做法,如果客户端快速连续向客户端发送多条信息: for(int i = 0; i &lt; 100; i++) { clientSocket.Send(Encoding.UTF8.GetBytes(i.ToString())); }那么服务端将不...

2018-04-07 20:25:00 247

原创 c# 网络编程基础,socket篇[一]

1. 服务端 用c#创建一个控制台的新项目 创建方法StartServerSync()实现与客户端的同步服务,但是,这个缺陷很明显,有两个点需要等待 /// &lt;summary&gt; /// 同步式服务器 /// &lt;/summary&gt; static void StartServerSync...

2018-04-06 15:29:31 227

原创 U3d_人工智能[三]之有限状态机

1. 大致思路由于npc会有很多种状态,不同的情况会有不同的状态,不同状态会处做不同的事情.为了方便所有状态的行为与状态之间的切换,我们创建一个所有状态的父类FSMState,并创建FSMSystem类来管理各个状态.2. 转换条件和状态首先我们先创建两个enum类型,用来存放转换条件与状态.在不同 的状态下,出现不同的转换条件会发生不同的事情./// &lt;summary&...

2018-03-21 12:38:42 447

原创 U3d_人工智能[二]之鸟群行为

1. 鸟群行为,三个力为重点 鸟群向着一个方向移动,在游戏中会给它们一个目标点,在朝着目标点飞行的时候,如果代码仅仅是让鸟群朝向目标点,然后向前移动,就会导致鸟群拥挤,特别是到达目标点之后鸟群会聚集在一起. 我们要实现的效果是: 1.鸟群不会聚集到一起(分离力) 2.鸟群每个个体的方向不会一模一样,但是总体方向是向目标点移动的(队列力) 3.个体鸟不会离大队伍太

2018-03-20 15:37:36 1765

原创 U3d_人工智能[一] 之A*寻路算法

1. 主要思想: 首先,寻路即使寻点,一个一个正确的点走过去,便达成寻路的要求. 这里,每个点都有3个属性:F,G,H.H是当前点到达终点的预计消耗,可以用距离表示,但是这里我们的计算方法是/**now和end都是点,一个是当前点,一个是终点*因此,这里计算出来的距离就是两点的x差和y差的和*/H = Mathf.Abs(now.x - end.x) + Mathf.Abs(n...

2018-03-14 22:41:30 413

原创 u3d之摇杆技术

下载摇杆插件(我上传了一个) 创建一个Easytouch 点击”creat”创建Easytouch 创建joystick 右键点击创建出来的Easytouch来创建joystick 获取joystick 这个时候该发挥程序员的功能了,开动脚本 public ETCJoystick joystick;//这里要获取摇杆对象根据joystick

2018-01-27 02:12:10 1089

原创 物品拖拽[u3d_rpg游戏开发之物品管理(五)]

之前在网上找了好多方法,总是不适合自己,要么就是不能用之类的,我用的是2017的版本,在这里"全面"解析一下.首先创建一个脚本InventoryItem挂在需要拖拽的Image上,这里的Image是另一个Image的子物体,因为子的Imget我用来显示物品的相应物品的图片,而父的Image我用来显示格子的图片,这样就有了格子里面的物品,可以用来拖动,而且,格子的标签我设为"InventoryItem

2017-12-21 21:50:57 967

原创 xml在u3d的使用[u3d_rpg游戏开发之物品管理(四)]

1. 声明就是在开头处写明这一行,有时候没写也不会出错2. 根节点跟节点的只能有一个,位于最外层,是xml文档的第二个结点,第一个结点是声明时候的那行(如果有声明的话)3. 注释注释方法为一般最好不要写在根节点里面,会被当成一个子节点,都是写在这个之间,如下代码总结前三点,也就是xml里面的框架了Equips>Equips>4. 头文件

2017-12-15 19:21:08 411

原创 u3d_rpg游戏开发之物品管理(三)

接下来就是暂时告一段落的最后一个功能了——当鼠标悬停于有物品的格子的时候,显示相应的物品信息 在第二篇相关文章里面有两个空的方法体,其实就是为了实现今天的功能而预留的.所以接下来的代码就是写在InventoryItemGrid这个脚本里的了. 接下来就让我们来实现这个功能1.声明变量依然是声明相应的变量来存储相应的数据,在u3d中的物品栏的ui下先创建一个Panel,可作为文字背

2017-11-23 23:20:33 922

原创 u3d_rpg游戏开发之物品管理(二)

1. 创建三个脚本 第一个是挂在物品栏上的,用来管理背包格子的,我这里取名为:Inventory 第二个是挂在格子上的脚本,可以管理具体的格子,比如格子里的图片显示,不同的物品就显示不同的图片,以及一种物品的数量等等,取名为InventoryItemGrid 第三个是挂在物品上的脚本,主要实现物品的拖拽功能,鼠标可以拖拽物品移动到不同的格子上InventoryItem2. 先实现第三个脚本的一

2017-11-22 21:13:10 1024

原创 ugui根据图名动态切换Image图片

点击图片,将图片的Textrue Type设置为Sprite(2DandUI)将需要的图片放在Assets下的Resources下上代码 using UnityEngine.UI;//需要引入的头文件 public Image myImage;//获取需要切换图片的Image myImage.sprite = Resources.Load("图片名", typeof(Sp

2017-11-20 08:44:22 1378

原创 u3d_rpg游戏开发之物品管理(一)

介绍 作为一个物品管理,这里提供的方法是:先创建一个.txt文档用来储存所有物品信息。所以当我们要进行管理时候第一步也将是获取到这个文档(用TextAsset类),之后读取并做相关操作。在这里我假设我们的物品有: 创建.txt文本文档,用来存储所有物品信息 注意: (1)这里的文本文档的编码格式要为UTF-8,否则u3d读取不到内容。设置方法为——文件-

2017-11-05 21:21:51 2010 2

原创 Unity3d鼠标与游戏物体的交互(方法体)

- OnMouseEnter()当鼠标悬停于该物体上时执行 OnMouseEnter(){}花括号中的代码,鼠标移上去一次就执行一次 - OnMouseExit()当鼠标移出该游戏物体时执行方法,一次 - OnMouseOver()当鼠标悬停于该游戏物体时,每祯都执行一次方法 - OnMouseUp()鼠标弹起- OnMouseDown()鼠标按下

2017-11-01 17:43:32 3549 1

原创 Unity3d设置鼠标指针的样式

- 设置默认指针Edit->Project Setting->Player->Default Cursor中设置,如下图: - 通过代码设置鼠标指针通过Cursor.SetCursor()的方法,需要三个参数 Cursor.SetCursor(Texture2D, Vector2, CursorMode); 第一个为一张2d图片。第二个为2d的一个坐标点,

2017-11-01 17:21:51 2907

原创 Vector3

- vector3.magnitude 返回一个float,为该向量的长度,也就是该点到远点的距离。- vector3.normalized矢量归一化:就是把向量转为单位向量(方向不变,长度变为1)比如:如果想让a点以速度speed延伸: float c= a.magnitude;//获取向量长度 a=a.normalized*c*speed*Time.deatleTime;//矢量a归一化

2017-10-30 13:51:53 503

VM15装 macOS 简单步骤.rar

VM15装 macOS 简单步骤 里面有必要文件和安装教程,本人亲测可用, 上传时间20/8/20 注:由于macOS和VM15随处可下载,此资源不包含这两个大文件

2020-08-20

u3d_摇杆插件

为配合博客文章需要,发表此资源

2018-01-29

txt文档处理

u3d物品管理类,专注于txt文档中的内容获取与处理。c#代码

2017-11-06

空空如也

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

TA关注的人

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