- 博客(28)
- 问答 (1)
- 收藏
- 关注
原创 shader搬运学习(一)
Shader学习一首先贴上最主要的学习资料链接,作者是浅墨,感觉受益匪浅shader学习资料Shader "Shader真好玩/真TM好玩/MyFirstShader" //在选择菜单里面显示的值{ Properties { //显示在面板中的值,可以在面板上自行调整 // 在脚本中引用名称("编辑器中显示名称",类型)=初值 // name ("display name", Range (min, max)) =number
2021-07-06 23:20:26
227
1
原创 Lua解析json文件
最近学习luaframwork框架,大多数的逻辑基本上都要放在lua里面完成,之前unity是使用LitJson来转换json文件,而在Lua里面可以使用自带的cjson来进行转换:local cjson = require "cjson"local file = FileRead()local json = cjson.decode(file)for i = 0, #json do logError(json[1].time);endfunction FileRead() local
2020-08-19 18:48:04
2838
原创 unity消消乐制作(三)
匹配和掉落:匹配算法:public MatchItem MatchItems(GameObject item, Vector2 vector2) { MatchItem match; //横向遍历到的所有相同元素 List<GameObject> matchRowItems = new List<GameObject>(); //纵向遍历到的所有相同元素 List<GameObject> matchLineItems = new List<
2020-07-30 11:58:36
675
原创 unity 消消乐制作(二)
整体代码解析:整体常量存储:public const int Column=6; public const int Row=7; public int ConstraintCount; public GameObject count_Text; public GameObject combo_Text; public GameObject target_Text; public static int count=0; public int sum = 0; public static
2020-07-30 11:33:13
1009
原创 unity 消消乐的制作(一):
开门见山:UI布置:在制作之前需要先调整整体的分辨率,不然导出之后分辨率不对整体也会有问题,还有对整体的UI布局的调整,保证不管屏幕怎么拉伸都不会影响游戏界面。预制体的设置:这里我使用的button组件,其他组件都可以,一般用image组件。运行效果:代码结构:...
2020-07-30 11:04:09
2495
原创 Unity关于LitJson的使用
Unity使用的json:主要可以使用JsonUtility与LitJson;JsonUtility:JsonUtility是Untiy5.3后新增的内容,有时会出现莫名其妙的错误:JsonUtility.FromJson():把json字符串转成对象.JsonUtility.ToJson():把对象转成json字符串.LitJson:LitJson是一个Json的开源项目,这个比较稳定,推荐使用:JsonMapper.ToObject():把json字符串转成对象.JsonMapper.To
2020-07-14 13:55:35
1011
原创 Git学习日记(二)
远程仓库:可以搭建自己的远程仓库,或者直接在GitHub上面使用免费的远程仓库,不过如果没有交钱的话,上传到GitHub的东西都是他人可见不可改的。首先通过以下命令设置自己的公钥和私钥$ ssh-keygen -t rsa -C “youremail@example.com”然后在github上面设置自己的ssh公钥:然后在github上面创建一个远程仓库,再通过以下命令将远程仓库和本地的仓库进行连接:git remote add origin git@github.com:用户名/远程仓库名
2020-06-16 23:48:40
136
原创 Git学习日记(一)
一.账户和邮箱设置下载后第一步设置自己的账户名和email:$ git config --global user.name “Your Name”$ git config --global user.email “email@example.com”二.设置一个本地仓库在任意文件夹下面使用该命令就可以创建一个版本库,对该文件夹及子文件夹里面的文本文件进行操作都可以进行git的管理。$ git initInitialized empty Git repository in /Users/mich
2020-06-16 00:31:06
135
原创 Unity中字典的实现
问题: 最近在做毕业设计,里面其实很多地方都用到了Dictionary,主要是用这个结构来进行相关数据的存储,比如说装备的存储,NPC对话的一个存储。当然,之前为了优化人物释放火球的时候运用了对象池技术,也是用的Dictionary来实现的。但是这次接到一个面试问我字典的底层,一下子就让我有点难搞了,虽然之前看过,大概记得一点点有关于链表,但整体还是不记得了(计算机的这些东西真的是不用就忘,哪怕当时看过也都不记得,还是得多复
2020-05-29 02:21:29
3437
原创 理解一下Awake和Start方法
起因:之前只知道 Awake方法调用在Start方法之前,然后Start在第一帧进行调用,没有多少深入了解。然后遇到了一个bug,我给Prefab里面的一个物体手动添加了一个Button,这个物体初始化的时候我是设置的隐藏,然后在Awake方法里面,通过获取Prefab的标签进行不同的操作,物品实例化之后,标签应该是会改变的,但结果却一直获取到的是 Prefab 尚未实例化时候的标签。最后发现,...
2020-03-27 21:41:22
702
原创 unity背包和拾取系统(三)
第三部分:关于物体的管理总的Item类:using UnityEngine;using System.Collections;using UnityEngine.UI;using System.Collections.Generic;using UnityEngine.EventSystems;using System;public class Item { ...
2020-03-17 23:03:36
1008
原创 unity背包和拾取系统制作(二)
背包UI方面脚本拾取方法:using UnityEngine;using System.Collections;using UnityEngine.UI;using System.Collections.Generic;public class UPickup : MonoBehaviour{ private List<string> m_tagname=new...
2020-03-17 22:25:55
1295
原创 unity背包和拾取系统的制作(一)
第一部分:背包的UI制作:BagCanvas是 Canvas组件,EquipmentBag是一个Image组件,用来充当整体背包的背景;Grid_01是一个空物体,在上面附加一个Grid Layout Group组件,用来进行一个网格的水平布局;Ucell是Image组件,作为格子的背景还有一个 UItem组件也是一个Image类型,第一个text子组件显示物体的数量,放在图片右下角可以...
2020-03-17 21:44:48
3549
原创 Lua基础学习(二)
全局变量与局部变量:只要用local关键字声明的变量都是局部变量,在一个以 end 结束的段落中生效;只要没有用local关键字声明的变量都是全局变量,全局有效,但在局部中,假如全局变量和局部变量的变量名相同,则以局部变量为基准变量赋值:Lua 可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量。a, b = 10, 2x &l...
2019-12-03 16:23:17
107
原创 Lua基础学习(一)
基本数据类型Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。Lua 中有 8 个基本类型分别为:nil(空值,相当于null)、boolean、number(双精度double类型)、string、userdata(表示任意存储在变量中的C数据结构,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 L...
2019-12-01 22:30:40
155
原创 unity 异步加载场景
当我们在unity进行场景跳转的时候,我们需要学会进行异步加载,因为同步加载在加载资源过多的场景的时候会造成卡顿,而使用异步加载的话就不用担心这个问题。这里主要的方法是使用协程的方法进行异步加载。首先准备三个场景,主要出来的效果就是从场景一跳转到加载场景二,最后再跳转到最终需要的场景界面三。场景二的主要功能呢,是用来做UI,显示跳转的进度(就是下面这种效果)所以我们需要在场景二中,放置一个...
2019-12-01 21:25:22
1279
原创 unity对象池的使用
这两天在制作主角的技能以及攻击方式,其中就涉及到关于大量创造与回收物体,比如主角发射一个小火球。假如使用最基础的方式,当然就是不断地通过new对象来进行实例化,然后再用碰撞检测来destroy掉这个火球,这是最开始学习的时候使用的方式。但是这种方式就会面临一个非常大的问题,就是对性能会产生一个巨大的消耗,当我们频繁的去new对象的时候,每次都会在内存的托管堆上去分配一个空间,然后destroy的...
2019-11-09 22:16:24
148
原创 解决unity内置动画系统播放完回到原点问题
今天在逛论坛的时候,无意中解决了一个困扰我巨久巨久的问题(差不多几个月咯,烦死人。。。)那就是在用unity自带的动画系统建立动画之后,你会发现,当你勾选Apply Root Motion的时候,动画播放之后会发生莫名奇妙的改变。因为这个选项是允许动画改变物体的位移等属性,所以可能使用的时候会发现人物会发生各种位移,而假如不勾选呢?那就会每次播放完动画的时候,会回到你建立动画的地方完成动画,然后...
2019-10-26 23:02:27
8940
原创 关于 lookat函数的问题
今天玩unity的时候,突然发现调用lookat函数的时候,物体有个问题,那就是始终用z轴面对目标,那假如我们想要用其他轴来面对目标物体有没有办法呢?先来看看这个方法:transform.LookAt(Vector targetpositon);当物体调用这个方法后,物体的Z轴就会朝向这个传进去的参数物体所在的位置。那么怎么改变轴向呢?这里有个很简单的小技巧,可以在LookAt方法后面加...
2019-10-26 11:07:53
456
原创 C#与Java的区别
之前并没有系统的学过c#,而是通过java的学习直接就上手了unity,而java和c#在平时编程的时候差别并不大,所以平时没有什么问题,今天偶然遇到了一个问题,所以这里比较一下两个的区别。首先看看这个主要的问题,今天突然想到虚函数有什么用,然后就想着可以重写父类的方法,实现多态,然后突然发现java本身继承的时候不就可以重写吗,为什么还要虚函数?于是查了一下,实践了一下结论:原来java本...
2019-10-13 20:52:54
278
原创 数据结构常用算法学习二
堆排序算法将要排序的元素按照一定的方法排列成一个堆,从小到大的顺序的话,则最小值为根节点,子节点总比根节点要小。调整节点的时候,初次调整应该从叶子结点开始往根节点调整,经过一次筛选后,形成小根堆,然后输出根节点即为最小值,然后将根节点与最后一个结点交换,再将总的节点数减一(相当于抛弃掉已输出的结点),此时左右子树依旧满足堆的条件,此时只需要从根节点开始进行调整即可,堆排序算法是一种不稳定的算法...
2019-10-13 11:09:40
94
原创 数据结构常用算法学习一
近来开始学习数据结构和算法,为工作第一步做准备,先把这两天看的排序按照自己理解来写一下。(都是从小到大排序)冒泡排序从数组第一个元素x开始,与接下来的每一个元素进行比较,比x小的元素则与x交换位置,比x大则位置不变,直到比较完毕,则开始比较数组第二个元素。冒泡排序是一种稳定的排序算法时间复杂度:最好情况:数组开始时便是正序排列:O(n)最坏:O(n^2)平均:O(n^2)选择排序...
2019-10-10 22:30:43
99
原创 工厂模式建造小怪角色
首先是定义一个工厂的接口public abstract class ICharacterFactory { public Transform[] product; protected int flag; protected enum ENEMY : int { MianEnemy = 0, PigEnemy = 1, ...
2019-08-27 17:12:38
172
原创 踩个坑
昨天踩了一个大坑。 privata List<GameObject> m_list 然后m_list获取对象的时候一直显示为空,结果。。。今天突然发现我没有在Start()里面初始化他 应该还得 m_list=new List<GameObject>() 没有开辟内存当然1是空的,获取不到东西。一个相当相当基础低级的错误,记下...
2019-08-15 14:12:12
125
转载 深入理解Java的三种工厂模式
https://baijiahao.baidu.com/s?id=1621464439653310895&wfr=spider&for=pc虽然这是JAVA的,但设计模式应用来讲都一样,开始工厂模式建造角色
2019-08-10 21:42:13
70
原创 状态模式设置AI(2)
代码的编辑,首先是IAIState类public abstract class IAIState{ public ICharacterAI m_characterAI = null; public Vector3 LeaderPosition; public Vector3 LocalPositon; public void SetCharacterAI(IC...
2019-08-10 16:46:52
318
原创 状态模式设置敌人AI(1)
在游戏中要设置人物的AI可以使用状态模式(好像状态模式又有点类似于之前用过的桥接模式,后面有时间在比较一下)! 首先可以看下状态模式的类图然后这是参照游戏设计模式书画出来的游戏AI的状态图,状态和人物可以自由扩展,而不会像使用switch语句一样去修改内部代码,遵循了开闭原则。说明:IAIState:状态的接口,里面的Update方法由子类进行实现,然后在ICharact...
2019-08-06 00:38:12
231
空空如也
luaframwork框架导入问题。
2019-12-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人