【2.0】XAML
前言本来没打算写的,但是考虑到我的开源项目,我决定写一下当作复习了。
XAML(EXtensible Application Markup Language)是微软推出的对标 HTML 的标记语言,其本质就是XML的变体,微软在设计 WPF 的时候就学习了 HTML 的前后端分离的模式,这样就类比过来,WPF 技术,使用 XAML 作为前端,C#作为后端,分离了前后端,方便了团队合作和项目开发不必过于耦合。
理解XAMLXAML编译
WPF 创建者知道,XAML 不仅要能仅仅设计协作的问题,它还需要快速运行。尽管 XML 格式可以很灵活的迁移到其他工具和平台,但是它们并不是最有效的选择。XML 的设计目标是逻辑性,易读性而且简单,且没有被压缩。
WPF 使用 BAML(Binary Application Markup Language,是一种二进制应用程序标记语言)来克服这个缺点。BAML 并不是新事物,它实际上就是 XAML 的二进制表示形式。在 Visual Studio 中编译 WPF 应用程序时,所有的 XAML 文件都被转换为 BAML,这些 BAML 然后作为资源嵌入到最 ...
【基础 02】构建函数可视化图形
前言
前排说明:关于本教程目录导航以及说明:猫式教程
在本篇文章中你将会学到:
创建一个预制体(prefab)
实例化(Instantiate)多个立方体
图形化一个数学函数
创建surface shader and shader graph
将图形赋予动画
这是有关学习和使用 Unity 基础知识系列教程的第二篇。这次我们将会使用基本的游戏对象(物体)来构建函数图形,我们可以通过图形来展示(图形化)数学函数。同时我们将会使用函数和时间进行关联创建对应的动画。
本篇教程使用Unity 2020.3.38f1c1 编写。
创建一排”点”对数学的理解是编程所必不可少的。从表面上来说,数学是对表示数值的符号(即未知数)的操作。求解方程归结为一组符号(即方程)。数学规则(即函数定义)决定了这种结果。
例如,我们使用函数 $F(x) = X +1$ ,现在我们使用数值 $3$ 来替代 $X$ 的位置,你就可以得到输出为 $F(x) = 3 + 1 = 4$ 。我们可以说通过函数 $F(x) = X +1$ 将数值 $3$ 映射到 数 ...
猫式教程
前言这部分既是猫式教程的说明,也是猫式教程的索引开始文章页。
关于猫式教程猫式教程(Catlike Coding)系列原作者: Catlike Coding,作者名叫:Jasper Flick,是一位 software developer living in Amsterdam ,他创建并编写了 Unity 的 Catlike Coding 的博客教程。
关于作者Jasper Flick
我在前年的时候尝试翻译过他的博客,在翻译了 3 篇博文后由于一些事情遂放弃了,此次打算捡起来继续翻译,在翻译的时候也会对作者的过程进行复刻,一是提升我的 Unity 能力,二是为了能在翻译作者博文的时候校验可行性。
如果教程对你们有利的话,请对原作者进行打赏,最终知识版权归原作者所有。我本人仅做翻译和二次编写以及一些补充说明。因为很多小伙伴对于英语的编写查看以及复现起来很麻烦,所以我打算解决这个问题。
翻译过程中可能会出现错误或者其他问题,如果发现了请谅解,我会尽量保证不会出错
猫式教程更新我暂定于一周更新一篇博文的频率来尝试更新教程,我会在一些关键词和必要的部分进行英文和中午的双解释。
我会 ...
【基础 01】游戏物体和脚本
游戏物体和脚本
前排说明:关于本教程目录导航以及说明:猫式教程
本篇任务:创建一个钟表,你将会学到:
使用基本物体创建一个钟表
编写一个C#脚本
通过转动指针来显示时间
为指针做一个动画
这是 Unity 教程的第一篇,在这篇学习中,我们将创建一个简单的时钟并编写一些组件使其显示当前时间。你不需要有任何 Unity 的经验,但是你需要有一定的 Windows 窗口使用能力。
在文章最后我会放出本文原文的 PDF (注:英文原作者的),以及教程项目的仓库(代码仓库)。
本教程使用Unity 2020.3.6f1编写,我采用 Unity 2020.3.38f1c1 来翻译复刻编写。
创建项目开始使用 Unity 之前,你需要先创建一个项目。
新项目当你需要打开 Unity 的时候,需要通过 Unity Hub 启动器来完成 Unity 的版本安装和启动,你可以通过 Unity Hub 来创建或者打开,安装 Unity 等一系列操作。
【如何选择 Unity 版本?】
123Untiy 每年会发布多个新版本,并且有两个并行的发布时间表。分别是:最稳定和最安全的是 LTS 版本。L ...
NAS入门
前言最近在折腾NAS,关于NAS的想法我去年就有了,不过一直执行,其实那个时候我的硬盘空间已经不足了,因为我也算是个蓝光党,于是花费300余¥买了个 1t 的移动硬盘,到我现在购买并调试使用NAS,决定记录相关事宜。
前排提醒:入门NAS需谨慎,这是一个烧钱的东西,第二如果你只希望存储完全不需要购买NAS,买个多硬盘的硬盘阵列盒即可。最重要的一点是NAS需要折腾。
NAS是什么NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。
内容来源:百度百科
用人话来说,你可以把 NAS 看作数据库,你可以将你需要保存的,备份的等只要是计算机数据都可以存储在上面。不过这样来理解 NAS 不是很正确,但是的确可以,相比于把电脑多加快硬盘,NAS 的优势就由凸显出来了。关于电脑多加块硬盘和 NAS 的区别,在 ...
【4.0】依赖项属性
前言在我尝试写一部分 WPF 元素绑定的相关内容的时候,写到开头发现我不得不先解释说明一下依赖项属性的相关内容,遂停止元素绑定内容的记录,补写依赖项属性的相关内容。
理解依赖项属性属性和事件是.NET抽象模型的核心部分,如果你懂得 VB 或者 WinForm 相关开发的话会十分了解这点。但是对于 WPF 来说,它在传统的属性基础上做了一层封装,将它变成了更加高级的依赖项属性。同时也不会和传统的属性发生冲突。
这种更高级的依赖项属性使用了效率更高的保存机制,并支持附加功能,例如:更高通知以及属性值的继承。
依赖项属性是.NET属性的新实现,在 WPF 技术特性中,是及其依赖于依赖项属性的实现,虽然在使用过程中,感觉和普通的属性一致。
定义依赖项属性绝大部分的微软提供的属性都是依赖项属性,但是在某些情况下,我们需要自定义我们自己的依赖项属性,比如我们自定义的控件。
定义依赖项属性需要注意的是:**自定义的依赖项属性的类,必须继承于DependencyObject**,因为后续需要使用该类的方法来修改依赖项属性的值。代码示例:
123456// 自定义了 Test 类,该类继承于 Depen ...
【1.0】初识Mainm
前言我了解到Manim是在去年春夏的时候的事情了,当时沉迷于游戏开发,涉及到3D数学方面的知识,然后就找到了3blue1brown 的相关视频,然后就了解到了他所开发使用的数学动画引擎工具,即Manim。
前排提醒:学习Manim需要一定的Python基础。
关于Manim所能实现的数学动画效果可以查看3blue1brown 的相关视频。
Mainm简述Manim was originally created by Grant Sanderson as a personal project and for use in his YouTube channel, 3Blue1Brown. As his channel gained popularity, many grew to like the style of his animations and wanted to use manim for their own projects. However, as manim was only intended for personal use, it was very difficu ...
【CSharp实例】文件基本操作
前言我记得我之前的博客是写过C#实例相关的文章,但是考虑到过于琐碎,我并没有那么多时间,所以指拿出来文件操作的部分来记录,因为对于程序来说,输入和输出的使用频率和重要性会更高一些。
本篇内容参考自 互联网,哔哩哔哩相关视频,《C#开发实例》以及本人经验
获取文件基本信息获取文件的大小方法说明获取文件大小,需要使用File类的Open方法开打开指定的文件,然后使用FileStream类的Length属性获取文件的长度。
File类的Open方法
File类的Open根据传入的文件路径,获取其FileStream并返回,函数签名如下:
123public static FileStream Open(string path, FileMode mode, FileAccess access, FileShare share);public static FileStream Open(string path, FileMode mode, FileAccess access);public static FileStream Open(string path, FileMode mo ...
Hexo入门(上)
前言在我第二次给网站装修的时候,曾经考虑过使用Hexo,不过那个时候看到人家好看的模板需要一定的网页基础,遂就放弃了,随着我今天发现我的网站似乎CSS的CDN服务停止了,遂打算用Hexo+Github+COS来完成网站的布置和搬迁,这样一来可以剩下一笔费用,而且因为Hexo是纯静态的,所以加载速度也会很快。
以此文章记录和帮助需要帮助的伙伴。
什么是HexoHexo是一个轻量级的博客框架,它是通过生成静态网页来实现网站的建设,因为是HTML形式,所以它的访问速度是很快的,关于Hexo网站可以通过点击访问Hexo官网。
Hexo的搭建环境安装Hexo需要在电脑上安装Node.JS和Git,如果你已经安装了这两个环境,则可以跳过这部分,直接到Hexo的部署。此处安装示例环境为Windows环境,其他系统请自行参考别的文章。
点我访问Node.JS官网,进入官网下载符合自己平台的软件,版本建议使用12.0及以上的版本,可以无脑最新版。
点我访问Git官网,关于Git的安装和使用可以参考我这篇文章Git与GitHub(上),此处不过多赘述
如果以上官网无法访问,可以尝试科学上网或者寻找其 ...
Hexo入门(下)
前言这部分将着手Hexo的一些基本的配置和使用方面,关于Hexo的部署部分可以参考我的上篇文章。
Hexo文件目录Hexo的安装/初始化目录如下图所示,可能部分文件存在不同,不需要担心,只需要关心我框出来的红色的文件部分:
文件/文件夹名
说明
public
我们最后生成的静态博客.html文件会在该目录下存在,如果你并为生成或者使用了hexo clean命令,则该文件夹不存在
scaffolds
模板文件夹,里面存在我们创建文章,分类等初始化的默认内容
source
文章以及一些主要内容的文件夹,该文件夹下的内容会被全部拷贝到生成的public文件夹里
themes
主题文件夹,我们下载使用的主题需要导入到该文件夹中,通过在该文件夹下创建命名为主题名称的文件夹即可
_config.yml
Hexo的配置文件
注:Hexo的配置文件和主题的配置文件不要混淆,如果你使用别人的主题则会存在一个对应的主题的配置文件
配置文件参数
yaml文件的参数填写时一定要在:后加一个空格,再填写参数
在了解了Hexo 的文件目录后,我对一些常 ...