- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 C/C++ 程序内存分配,内存中堆和栈使用情况以及函数压栈退栈过程
C/C++程序内存的分配1.内存分配简易图2.程序内存分配具体分析3.内存中栈与堆的区别4.函数压栈退栈的过程C++程序在运行过程中所占用的内存空间主要分为五个部分:栈区(stack): 是一种连续储存的数据结构,具有先进后出的性质。由编译器自动分配与释放,存放为运行时函数分配的局部变量、函数参数、返回数据、返回地址等。其操作类似于数据结构中的栈。堆区(heap): 是一种非连续的储存数据结...
2020-04-11 14:22:08
1415
1
原创 C++ 显示转换关键字explicit详解
C++ 显示转换关键字explicit详解implicit隐式转换explicit显示转换想要理解显示转换,首先得明白与之对应得隐式转换是什么。implicit隐式转换隐式转换关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式),且不显示出来,因此常常被我们所忽略。下面详细讲解隐式转换得过程假如一个类A的构造函数是A(int i),则在变量声明的...
2020-04-08 23:25:42
231
原创 Unity中Resources.Load加载资源及其封装
1.Resources介绍Resources文件夹是Unity中标志性的目录(可以在1级目录,也可以在其他子目录),Resources目录下的文件不论使用与否,都会被强制打包到游戏包中,所以应尽可能去除不需要运行时加载的资源或者已经废弃掉的资源,否则会增大游戏包体积。且Resources下的文件不要直接当作预制体引用在场景中,否则会被Scene和Resources打包成两份,而应该在打开场景时加...
2019-11-19 19:34:39
7730
1
原创 VS中编写Shader脚本,导致VS崩溃问题的解决办法
出现这种情况的主要原因在于,在安装Unity时,默认配套安装VS,但由于Unity编写的脚本语言是C#和JavaScript,而编写Shader的语言是ShaderLab,内核为C语言,所以默认VS安装不会安装C++编译器(在VS里C++包含C),这里只需要手动添加C++环境就可以正常运行了打开VS,点击文件,新建项目,点击已安装->Visual C+±>安装适用于c++的Windo...
2018-11-08 10:53:22
1075
原创 实现Unity与服务器的简单通信(一)——搭建Web服务器
环境:服务器:Windows Server 2008,数据库使用Sql Server 2008,工具VS2015,Web站点使用WebAPI1.在数据库下,创建账户数据库命名为DBAccount,在C盘中创建一个文档,再在文档文件夹里面重命名为DB,将数据库文件存储路径修改到当前目录。(因为我所用的服务器为云服务器,只有一个盘,如果有其他盘,最好存储在其他盘,方便管理)2.在DBAccou...
2018-11-07 16:36:40
5911
原创 MMORPG学习笔记——简单战斗系统(一)有限状态机控制
战斗框架主要由有限状态机(FSM),AI,角色信息(RoleInfo),以及控制他们的角色控制器四个部分组成。整个加载过程为:角色控制器绑定在角色或者角色模型的父物体上,然后每次登录场景之后,创建角色或者怪物,然后通过角色或者怪物身上的初始化函数,初始化FSM,AI,RoleInfo,即通过实例化脚本,通过构造函数将角色控制器传递给脚本,达到降低耦合的作用首先是动画状态机的控制,如果选择新动...
2018-10-31 21:31:38
1880
1
原创 Windows Server 2012 使用远程桌面连接阿里云服务器
1.用网页连接阿里云登陆主机,打开服务器管理,选择本地服务器,启用远程管理和远程桌面,一开始我也是搜网上的教程,但是win8仅仅修改远程管理和桌面并不够。如果按照网上其他教程,这样继续做下去,最后连接的时候,还是远程不可访问。还需要进行很关键的一步,对允许远程连接到计算机下面一个选项取消勾选取消勾选之后,就可以在本地计算机,win+R->mstsc,打开远程桌面,输入公网IP,以及用...
2018-10-29 11:53:42
5070
原创 Unity NGUI中人物头顶名称、血条绘制及跟随
步骤:1.在NGUI中制作血条和名字2.达到血条在角色头顶上方显示的效果3.在场景开始时,由角色创建自己的血条实现:1.创建一个在容纳血条的父物体(创建这个因为一个场景中往往有很多角色拥有血条,这样做是方便管理)在UI中创建一个容器(NGUI->Create->Widget),然后在Container下创建一个空物体命名为RoleHeadBarRoot2.制作血条创建一个空...
2018-10-24 11:09:02
2445
原创 MMORPG手游学习笔记——基于NGUI的UI框架雏形
一个MMOPRG游戏游戏流程主要是进入游戏之后进入初始界面,一般这里游戏公司会在这里挂上自己logo的图片或者一段动画以让玩家记住他们,然后进入游戏的登录界面,登录之后,进入真正的游戏界面。玩家可以在里面进行与NPC的互动,以及可以通过点击按钮,打开角色信息面板,角色装备面板,以及后面的关卡选择,关卡结算等等。在UI方面,为了防止每次多加一个窗口或者场景都需要加大量重复的代码,造成大量代码冗余,并...
2018-10-10 17:07:21
356
原创 学习笔记——基于NGUI的UI框架(一)(总结方法有问题,已作废)
目前已经把场景搭建完毕,登录注册界面都已做好,整个场景大概分三个模块:UI根节点的UI Root_LogOnScene以及加上背景不变的部分,注册界面panReg,登录界面panLogOn当加载这个场景时,首先应该加载UIRoot以及大背景不变的部分,再在这个基础之上,加载登录或者注册界面。第一步将这三部分均设置为预制体(Prefab),UI Root_LogOnScene存放到Reso...
2018-09-20 20:32:05
498
原创 NGUI UI搭建的常规用法及习惯
1.图集Atlas的制作关于图集的优化:图片必须为正方形,且分辨率为2的幂次方,下面是如何制作正方形图集的方法NGUI->Open->AtlasMaker选择准备好的素材,点击创建图集,这里会看到我所创建的图集分辨率为1024*512,这种图并不利于优化删掉,再次创建,取消勾选Unity Packer,并勾选新出现的Force Square发现新创建的图集尽管空出了...
2018-09-20 16:59:53
721
原创 Unity RPG手游中控制角色相机的移动跟随(三)
实现:通过EasyTouch插件中点击屏幕的几种事件,来实现点击屏幕,角色发动移动,以及滑动屏幕实现视角转变和两指操作实现缩放。本人测试过:EasyTouch4或者5版本都可以使用。1.导入EasyTouch插件,在Hierarchy窗口中点击右键创建EasyTouch->EasyTouch(有可能没有出现这个选项,需要加载一会就出来了)2.创建该物体之后,再创建脚本FingerEve...
2018-09-19 15:06:22
1419
1
原创 Unity RPG手游中控制角色相机的移动跟随(二)
实现:通过键盘控制相机围绕角色进行上下左右旋转以及相机视角的缩放。相机的创建创建四个空物体,分别为下图的命名,给相机四层父物体结构,以方便实现相机在三维场景中围绕角色旋转以及缩放CameraFollowAndRotateposition=player.positionrotation=(0,y,0)rotation.y控制视角围绕角色水平方向移动且实时CameraUpAndDo...
2018-09-19 11:13:52
1131
原创 Unity中碰撞检测小结
两个碰撞体发生物理碰撞所需条件:两个物体所在的层(layer),在物理层上能够发生碰撞两个物体均需要碰撞体(Collider)组件,最少一方需要刚体(Rigidbody) 碰撞函数: void OnCollisionStay(Collision info); //检测是否发生碰撞void OnCollisionEnter(Collision info); //碰撞开始时触发void O...
2018-09-19 10:34:40
3706
原创 Unity3d中的单例模式
C#中单例的实现:public class SceneMgr{ private static SceneMgr _Instance; /// <summary> /// 只读 /// </summary> public static SceneMgr Instance { get {...
2018-09-13 20:06:49
3563
1
原创 Unity中射线与相交球的使用
射线部分: 实例:鼠标点击屏幕,得到屏幕中物体名称的实现if (Input.GetMouseButtonUp(1)) { //从主相机中发射一条到鼠标点击位置的射线 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Debug.Log...
2018-09-12 14:53:56
1538
原创 Unity RPG手游中控制角色相机的移动跟随(一)
两个碰撞体发生碰撞所需条件: 1. 两个物体所在的层(layer),在物理层上能够发生碰撞 2. 两个物体均需要碰撞体(Collider)组件,最少一方需要刚体(Rigidbody) 碰撞函数: void OnCollisionStay(Collision info); //检测是否发生碰撞,每帧执行 void OnCollisionEnter(Collision info); /...
2018-09-11 16:55:19
1218
原创 Unity开发习惯(持续跟新)
1.文件方面 Editor: 编辑模式下需要运行的脚本放到此文件夹下 Plugins: 第三方插件目录,一般将插件放到此文件夹下,手机游戏开发一般将要接的sdk依赖的库文件放入对应文件夹中,例如Plugins/Android、Plugins/iOS Resources:所有的预设均可以放到此文件夹下(很重要,单词不能写错,否则文件读取会出bug) StreamingAssets:权限只读,...
2018-09-10 10:59:18
172
原创 给新建脚本自动添加指定注释
给新建脚本自动添加指定注释首先在Unity工程目录下创建“Editor”文件夹,并在“Editor”下创建脚本“ScriptCreatInit”,脚本内容如下using UnityEngine;using System.Collections;using System.IO;using System;using UnityEditor;public class Script...
2018-09-08 12:06:35
452
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人