一.多态 里氏替换原则: 任何能用基类的地方,可以用子类代替,反过来不行.子类能够在基类的基础上增加新的行为.面向对象设计的基本原则之一. 开放封闭原则: 对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况.对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改.关键是抽象,将一个功能的通用部分和实现细节部分清晰的分离开来.所有面向对象原则的核心. 虚方法实现多态: using System; namespace Polymorphism { /…
Unity里的人物驱动/换装备/换武器/换衣服/动画重定位 刚学的过程被这个问题困扰最多. 首先,基本的,大家都知道驱动人物需要骨架.绑骨的Mesh和动画(这三个要是不知道的话就得考虑看看计算机图形学先) 然后,基本上有点maya(或其他)功底的都知道,在maya里,骨架.mesh和动画都是一种单独的存在,谁混一起谁郁闷. 在unity里面,情况也是如此,不过再复杂一点展开. 1.骨架就是transform.不像maya和理论那样,是一种实体的单独的存在.在unity里,骨架就是transfor…
qmake 生成的vs工程与环境变量中的 qmakespec相关,可以有两种方法: 1.默认情况下,即环境变量qmakespec为你装的qt for vs的版本,默认生成的为该版本的vs工程,如,你装的是QT for vs2010,那么环境变量qmakespec=win32-msvc2010,默认情况下生成的是vc2010的工程. 当你的xx.pro的TEMPLATE = subdirs时:用qmake -r -tp vc xx.pro 生成sln. 其他情况下用:qmake -tp vc xx…
想在服务里生成一个通知,并且点击通知打开当前应用程序下单当前活动,折腾了半天,网上的那些都不靠谱,试了半天,最后把ActivityManager和反射都用进来了,终于解决了这个问题.这样在服务中想恢复本应用的界面就可以实现了.直接贴代码. ActivityManager manager = (ActivityManager) MyApplication.getInstance().getSystemService(Context.ACTIVITY_SERVICE); List<RunningTa…
Unity之生成梯子算法的实现. 1.通过预制物体动态生成角度可设置的梯子形状. 1.1 主要涉及到的数学知识点,角度与弧度的转化. 弧度=角度乘以π后再除以180 角度=弧度除以π再乘以180 1.2 三角函数     在这里只使用正切函数tan,简单的推理逻辑如下: 2.1下面开始看代码了padelCreate.cs using UnityEngine; using System.Collections; public class padelCreate : MonoBehaviour {…
写在前面 熟悉Unity的都知道,Unity可以进行基本的雾效模拟.所谓雾效,就是在远离我们视角的方向上,物体看起来像被蒙上了某种颜色(通常是灰色).这种技术的实现实际上非常简单,就是根据物体距离摄像机的远近,来混合雾的颜色和物体本身的颜色即可. Unity里设置雾效有两种方式,一种最简单的就是直接开启全局雾效,也就是在Edit->Render Settings里配置,如下图所示: 而我们只需要把"Fog"选项后面的勾选框打开即可.上图包含了一些设置:雾的颜色,模拟雾采用的方法,…
在unity中本来想实现在一个背景墙上更换图片的功能 在网上查了一些资料说是用Image,但我是新手小白刚接触Unity不久好多组建还不会用,就想能不能通过改变游戏对象的材质球来更换游戏对象的背景. 查了一些帖子,参看了前辈们的一些做法,实现了这个功能,现在分享给大家.我是小白一个,技术还不成熟,有些术语表达还不够准确,后来者如果看到这篇帖子,叙述不当之处还请多多包涵,这也是我在CSDN上的第一篇文章 实现过程如下: 1. 在场景中新建一个游戏对象 Creat---->3D object----…
刚开始也不知道什么是pbr (Physically Based Rendering)后来才发现这是一种新的渲染方式 与之对应的是材质是pbs(Physically Based Shader) unity中的pbs有两种,一种是金属度的,一种是反射的, 具体前者可以做金属泥土之类,后者用于其他非金属的,但是这不绝对,前者也能做布料木头之类 最终使用还是要看艺术效果 (unity中金属度pbr材质) (unity中反射流程pbr材质) PBR做法 albedo map 无光颜色贴图normal ma…
Unity 自动生成组件索引类工具 需求由来 我们在写UI类时 需要获取预设中的组件 joystick = transform.Find("joystick"); background = transform.Find("joystick/background"); stick = transform.Find("joystick/stick"); direction = transform.Find("joystick/directi…
Unity之生成扫描二维码 Unity之生成扫描二维码 前言 开篇 Unity版本及使用插件 正题 前期准备 首先生成二维码 然后需要扫描二维码 该使用了 挂载脚本绑定按钮和输入框 运行内容 生成二维码 扫描二维码 结尾 唠家常 今日有推荐 Unity之生成扫描二维码 前言 开篇 又到了一周一分享啦,今儿小黑为了给小可爱一个好玩的,想来想去不知道弄什么. 后来一想,就制作一个生成和扫描二维码的软件吧. Unity版本及使用插件 Unity 2020.4.4f1 zxing.unity.dll 下…