欢迎来的我的Blog
这里主要用来记录一些生活、学习以及工作中的事.
也会转载一些的博文.
如果发现不希望有不希望转载的情况, 请联系我, 我会第一时间删除
最近在干的事情
最近干嘛去了最近因为去了猪厂, 刚来就比较忙, 所以基本没有自己写一些东西啦.
今年小目标看完引擎相关的东西, 自己写一个小玩意儿玩玩
最后希望人人都有饭吃, 人人都有书读
OpenGL VRML Materials 材质参数
OpenGL/VRML MaterialsThese numbers come from the OpenGL teapots.c demo, � Silicon Graphics, Inc., � 1994, Mark J. Kilgard. See also [1], [2], and [3].
The numbers
Name
Ambient
Diffuse
Specular
Shininess
emerald
0.0215
0.1745
0.0215
0.07568
0.61424
0.07568
0.633
0.727811
0.633
0.6
jade
0.135
0.2225
0.1575
0.54
0.89
0.63
0.316228
0.316228
0.316228
0.1
obsidian
0.05375
0.05
0.06625
0.18275
0.17
0.22525
0.332741
0.328634
0.346435
0.3
pearl
0.25
0.20725
0.20725
1
0.829
0.829 ...
实现自己的IoC容器
目录
什么是IoC
实现
1.定义IIoCConfig
2.定义IoCConfig实现
3.定义IoCContainer容器接口
4.使用反射实现IoC容器
什么是IoCIoC是英文Inversion of Control的缩写,通称”控制反转“.主要用来解决依赖倒置.可以更好的实现面向接口编程,使各组件解耦.
实现1.定义IIoCConfig123456public interface IIoCConfig{ void AddConfig<TInterface, TType>(); Dictionary<Type, Type> ConfigDictionary { get; }}
2.定义IoCConfig实现1234567891011121314151617181920212223242526272829303132public class IoCConfig : IIoCConfig{ /// <summary> /// 存放配置的字典对象, Key是接口类型 ...
深入理解DIP、IoC、DI以及IoC容器
摘要面向对象设计(OOD,Object-Oriented Design)有助于我们开发出高性能、易扩展以及易复用的程序.其中OOD有一个重要的思想那就是依赖倒置原则(DIP,Dependence Inversion Principle),并由此引申出IoC、DI以及IoC容器等概念.
目录
前言
依赖倒置原则(DIP)
控制反转(IoC)
依赖注入(DI)
IoC容器
总结
前言简单概念:依赖倒置原则(DIP):一种软件架构设计的原则(抽象概念)控制翻转(IoC):一种翻转流、依赖和接口的方式(DIP的具体实现方式)依赖注入(DI):IoC的一种实现方式,用来反转依赖(IoC的具体实现方式)IoC容器:依赖注入的框架,用来映射依赖,管理对象创建和生存周期(DI框架)
依赖倒置原则(DIP)依赖倒置原则,它转换了依赖,高层模块不依赖于低层模块的实现,而低层模块依赖于高层模块定义的接口.通俗的讲,就是高层模块定义接口,低层模块负责实现
Bob Martins对DIP的定义:高层模块不应依赖于低层模块,两者应该依赖于抽象.抽象不不应该依赖于实现,实现应该依赖于抽象.
场景一 依赖 ...
使用Docker安装Gittea
因为自己的Git仓库fork了挺多东西, 之前是使用的以下这个自己写的py脚本用来维护库.
123456789101112131415161718192021222324252627282930313233import osimport sysdef dirPathList(lpath, outlist): filelist = os.listdir(lpath) for f in filelist: filename = os.path.join(lpath, f) if os.path.isdir(filename): outlist.append(filename) return outlistdef svnUpdate(path): cmd = 'TortoiseProc.exe /command:update /path:"{}" /closeonend:0'.format(path) os.system(cmd)def gitPull( ...
机核2021 GameJam
作品地址:https://www.gcores.com/games/67515
视频链接:https://www.bilibili.com/video/BV1SP4y1p7Zo/
批量清理Unity中missing的脚本.
工具git地址
这个小工具是我为了帮助开源项目金庸群侠传3D重制版
写得, 主要用处是批量查找丢失引用关系的脚本, 并且删除, 支持多选文件以及处理整个工程.
一个备份手机图片的时候使用的小工具
最近自己的Android主力机换成了iOS,
换机第一件事就是转移照片等文件.
但是在使用iOS官方自带的迁移助手后发现大量照片的日期出现了错误, 这其中包括了部分截图, 部分微信图片.
之后尝试了使用腾讯的换机助手, 问题依旧.
在研究后发现, 之前的Android是小米, MIUI可能有一套属于自己的相册日期快照功能. 能给没有exif的图片维护一套额外信息, 用于保存图片的时间等信息.
所以我用python写了一个小工具.
https://github.com/zxsean/ModifyPhotoTimeStamp
用处如下:
会将png格式的图片尽量保证质量的情况下, 转换为jpg(因为尝试过给png文件保存信息, 发现保存不了)
查看jpg文件本身是否包含exif信息, 如果包含则不处理.
如果不包含exif信息的jpg文件, 会采用文件修改日期, 创建日期中最早的时间来作为exif记录的时间, 然后写入exif.
12345678910111213141516171819202122232425262728293031323334353637383940414 ...
Unity Editor 不用反射访问编辑器内部方法
Q:该问题来自Game Framework 官方群(216332935), Liuyi的提问.
Timeline 里引用了 UnityEditor.TimeArea 是个 internal 的类型
Timeline 所在的代码就能正常访问, 但是自己扩展的编辑器类就无法访问
本文参考了:
https://blog.csdn.net/akof1314/article/details/111773851
在使用 Unity Editor 制作编辑器工具的时候
经常无法对 Editor 内的 internal 类和方法进行访问
需要使用反射方式
反射方式写起来比较麻烦, 如果 Unity 升级了版本, 内部接口变化, 会导致反射失效
A:参考官方代码https://github.com/Unity-Technologies/UnityCsReference/blob/master/Editor/Mono/AssemblyInfo/AssemblyInfo.cs
我们可以发现其中有大量
[assembly: InternalsVisibleTo(“Unity.InternalAPIE ...