22-8-14最近的总结
22-8-14最近的总结
又过了半月多,我又来写日记了。我本来创建博客的目的是为了存储自己的技术文档,没想到我更多的是用来记录了。其实我自己也明白自己的网站又没有开放出来也没有去进行宣传,大家是不会来我的网站看。但我还是想记录下来自己的感受。
关于工作
我又找到了游戏开发的工作。虽然我现在加入的这个公司是做换皮游戏的,但是对于我这种初出茅庐的小子来说那些老项目的框架也是值得我去学习的。对此,我并没有太多的不满。当然前提是我不于他人比较就是了。每天我都处于996的状态。因为我刚刚接触新的框架和引擎(公司开发是用cocos2dx-lua,招我的时候明明还是说Unity的),我有很多的需求都无从下手。不过经过这两周的开发,我倒是更加熟悉程序断点查找原因。除此之外,我也是第一次接触成熟的商业游戏框架。这个项目中MVC模式的应用和类间的解耦的程度真的令我赞叹。但随之而来的便是难以理解,这是高度解耦的通病。对于某些东西我都不明白为什么它就能调用到。即使打了断点面对着十几个类间的互相调用,我也懵了。而且lua作为一个非面向对象的弱语言写起来真的云里雾里。
...
22-7-27最近的总结
22-7-27最近的总结
离上次小结才刚好过去一周而已。但是这篇文章我想更专注于我辞职后到现在发生的事情。这几天我基本都在复习。我复习了计算机网络、计算机操作系统、Unity相关知识和算法。复习这些都是为了下一个工作的面试。
我想休息
其实我很想去休息一段时间,什么都不管就只要慢慢等待时间的流逝,吃饱了睡,睡饱了吃。但是我的经济实在不允许我这么做。这几天我复习下来,我明显发现我不如以前那样精力充沛。看书学习我学不进去,看文章分析只要文字一多我也觉得头大。只要对某些东西专注一两分钟我就会感到困倦(其实在写到这里的时候,我就已经感觉到困倦了)。我觉得这应该是因为我的焦虑导致的。毕竟我现在已经是毕业生了,但我工作还没有着落。每每想到这点,我总是不能好好的睡觉。我的时间又几乎花在了复习知识点上。这就导致了我睡眠和运动不足。
朋友带来的焦虑
本来我也没有那么焦虑。我本来计划先玩一段时间然后在去找工作。而就在我想着好好享受的时候,我的朋友带给了我两个消息。第一个是他在厦门找到了一份一月一万的工作。第二个他告诉我8月份便不再招人。看到这个消息 ...
C#实现优先队列模板
C#实现优先队列模板
C#并不提供优先队列这个API。所以我们要自己去实现C#的优先队列。这里我参考了知乎这位作者的优先队列实现。(不过他用的是C++,我只是单纯的转换为C#而言)文章链接:https://zhuanlan.zhihu.com/p/35314095。具体的方法可以直接去看知乎的文章。我这里就直接给出C#的实现。(这里我根据自己的需求加了一些东西,你们也可以看文章中的代码改造然后根据自己的需求去修改)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291 ...
22-7-20最近的总结
前言
最近发生了好多事情。本来我计划是一个月一次总结。但是计划总是赶不上变化。上次近况总结还是3月份。但其实直到4月份我依然会更新文章。之所以没有更新总结,还是因为我不觉有什么好更新的。
关于技术
在技术方面,其实我这几个月来技术的增长几乎为0。虽然还是有在学习一些东西,但是这些东西我自己都没有弄明白自然也不会去做一些总结。其实有时候我也想将一些开发中遇到的细碎知识整理起来,但是细碎的知识总结起来还是细碎的知识。我不可能因为突然有一天想起来我有一个知识点忘了但是我在某一篇知识点合集中有写而去一个个翻我的文章。这样我还不如去直接百度,那我自己写文章的意义就没有了。所以我也就没有继续去更新了。
自己的生活
关于生活,这段时间来发生了好多的事情。离上次总结过去了这么久不发生点事情也不太正常。我就挑一些重点的说一下吧。
我和舍友都离职了
舍友比我先离开。他离开的原因很简单,他认为在这个公司他再也学不到新的东西,而且还要忍受老板不断变换的需求。有时候老板的一个更改需求就让他这几天的活全部白干(公司的策略是快速原型开发 ...
Unity Transform扩展(一)
Unity Transform扩展(一)
前言:
在使用Unity的Transform函数时,我们会发现其自身提供的API有时候并不能完全满足我们的需求。因此我们可能会写一些方法去实现我们的需求。但是有时候这个需求在多个不同的类中都需要。这时候我们就要使用一个帮助类去减少我们重复的工作。不过人都是懒惰的,我不希望多声明一个类然后再去使用。那么我们可以使用C#的扩展类方法让Transform直接可以调用我们写的方法。具体实现如下。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354using System.Collections;using System.Collections.Generic;using UnityEngine;public static class TransformHelper{ //通过名字深度优先遍历查找对象 public static Transform FindByNameDFS ...
lua学习笔记整理
Lua 学习笔记整理
前言(废话):
我今年2月份开始进行笔记整理。然后我拖到4月份才整理结束。其实我学完后就再也没有用过了。很多知识点在我整理的时候都有些模糊不清了。但是我真的很少使用lua,而且我又不想自己白学一门知识。所以我在这之中又去查找资料。有些东西不一定正确毕竟我也是在学,但是代码的结果是准确的。最后整理了快七千字已经是我写得最多的文章了。
lua中的数据类型
nil 表示空数据,如同C#中的null
boolean,布尔型。只有true和false。
string,字符类型。
number,数字类型。可以说同C#的float类型,占32位。lua中没有整数类型。
table,表格类型。它是一个关联数组,下标是从1开始的。可以用表示来模拟面向对象。在lua中table有着很重要的作用。
function,函数类型。在lua中函数是第一类值,而在C#、C++或Java等语言中函数是第二类值。
userdata 表示任意存储在变量中的C数据类型。
thread
表示执行的独立线程(本质是“伪多线程”,是协程的概念),用于执行协同程序。
...
如何使用Unity做出在固定大小区域显示主摄像机看不到的画面
使用Unity做出在固定大小区域显示主摄像机看不到的画面
前言:
这次的标题好长啊。但是我也不知道怎么写这样个标题。最近做项目刚好遇到了这个需求,所以标题就是按照需求写的。这个项目后面转给同事了。不过我觉得这个要求挺有意思的,所有我就做了一个Demo。这篇文章希望能给要做这种要求的你提供一个思路。
项目的要求
这次我做的项目要求我做一面照妖镜。然后角色可以使用这个照妖镜去照射出妖怪的样子。所以我需要在一个固定大小的区域中显示出主摄像机看不到的画面。即玩家操纵一个UI,然后UI里面要显示出主摄像机看不到的画面。(Unity版本2020.3)
主要思路
因为要操作UI去看到不一样的画面。所以我打算直接在UI中实现。我设置一个Raw
Image(覆盖全屏)配合Render
Texture进行画面的显示。然后用一个mask遮罩将画面超出照妖镜的部分遮盖掉。一开始照妖镜是不显示的,只有玩家操作时照妖镜才会显示出来。
实现
配置
我们设定主摄像机的Culling
Mask看不到UI层。自然那些“妖怪”就要是UI层的。具体设置什么为主摄像机不可见由你来决 ...
Unity小记二
Unity小记二
前言:
本篇文章是记录我在使用Unity中的过程中遇到并解决的问题和发现的知识点。所以文章比较杂碎。但我本来就是想这样才把这种文章归成随笔的。我使用的Unity版本为2019.4.6f1。
关于碰撞器
纵使是触发器也要有刚体才可以检测。所以碰撞检测必须要有一方有刚体。但是如果你将isKinematic设置为true。则脚本中的OnCollision型的函数都不再其作用,而OnTrigger类型的都可以。
Unity模拟碰撞器,如果你不在指定旋转那么其旋转会参考世界坐标。等于说你放了一个欧姆角为Vector.Zero的碰撞器。
RaycastHit中的normal属性可以得到射线接触面的法线。
关于Unity脚本中的this.enable
当脚本的this.enable ==
false时,这个脚本就不在运行了。所以FixUpdate也会受到this.enable的影响。
unity中物体的transform.forward可以用transform.rotation*Vector.forward。其他的方向也是同理。
...
关于Unity的StreamingAssets
关于Unity的特殊文件夹——StreamingAssets
介绍
StreamingAssets文件是Unity的特殊文件之一。在Unity进行打包操作的时候,StreamingAsset文件不会像Resource文件一样被Unity进行压缩。所以一般而言,StreamingAssets用来存储一些你不想被Unity压缩的文件,比如游戏场景中的敌人的配置信息、UI的配置信息。StreamingAssets文件和Resources文件一样,他们都只能读而不能写。实际上,StreamingAssets文件在一些平台上仍然可以修改。可它的确在一些平台中不可修改。故为了平台之间的兼容性,StreamingAssets下的文件最好不要修改。
关于StreamingAssets的位置
在不同的平台中,游戏文件的存放位置也是不同的。而StreamingAssets文件不像Resources文件一样可以使用Unity提供的Resources
API进行直接的读取操作。我们要首先知道StreamingAssets在不同平台下的位置。这个位置可能会随时间的变化而改变,所以你可以点击 ...
2022-3-10最近的小结
对于公司
现在已经3月份了,我也成功入职了一家公司并且对现在所在的公司有了一定程度的了解。如果有人问我是否喜欢这个公司,我也回答不上来。因为我对这家公司的感觉很是复杂。
但我还记得一开始进去的时候我应该是不喜欢的。因为这家公司一共就5个人(包括我)。这么小的一家公司,我真的喜欢不起来。让我更加讨厌的是公司做得大多数手机中随处可以刷到的广告游戏。比如开局一个人然后通过选择不同的人来增加人数什么的,又或是跑酷类的游戏。反正这样的游戏我喜欢不起来而且我认为这样也不能让我有所增长。
我还记得我经过了一星期的开发后还喜欢上了这家公司。其实我喜欢的理由很简单那就是公司的上班时间和公司的人。公司上班时间是早上10点到晚上7点。对于我这种有早上起不来的人且做事又磨蹭的人来说,早上10点上班太爽了。这就意味着我可以晚睡晚起。而且公司离我的出租屋也就只有10分钟的路程。我可以一直磨蹭到9点50分出门还不会迟到。公司的氛围又不错。所以那段时间我突然觉得这家公司或许还不错。
我对这家公司的态度之所以变成现在这样。其实还是因为这家公司太小和我对未来的迷茫。虽然这好像是两件事,但是 ...