• 东京电玩展2018(多图) 2018-09-24 分类: 游戏

    虽说我是个老玩家,进入游戏行业也有几年了,但从未参加过游戏展会。在国内那么多年也没参加过 China Joy 。不过来到东京将近一年之后,托公司的福,竟第一次有机会参加游戏展——而且还是全球游戏行业知名游戏展东京电玩展(Tokyo Game Show)。

    公司为我买的门票

    这次展会最让我开心的是很多知名老牌日系厂商都有出展。像卡普空、万代南梦宫和史克威尔艾尼克斯这些一线日本大厂就自不必说,连 Falcom 和工画堂这两个我很喜欢的虽然已不活跃但却是 “百年老店” 的小厂商也有参展。

    卡普空的展位

    因此我也得以试玩到很多小时候就玩过或是虽没玩过但时常耳闻的经典作品系列,这让我非常期待。目前为止我最喜欢的日本游戏是 Falcom 的《双星物语》,可是 Falcom 的更为经典的轨迹系列却一直没玩过,不得不说是一个遗憾。于是当我看见 Falcom 的展台时恨不得马上就奔过去玩一把。

    Falcom 的展台

    (更多…)

  • 权限问题导致 git 服务器无法使用 2018-09-12 分类: 技术

    这两天在公司的 Synology NAS 服务器上搭建了一个 git 服务器。其实 Synology NAS 服务器是自带 Git Server 包的,可以一键安装,非常方便。但是我没有将权限设置好,这就导致 git 服务器一直无法使用。

    先是按照 NAS 文档的说明,我需要 ssh 到服务器上创建一个 git 仓库文件夹。然而我 ssh 登录之后却被提示 Could not chdir to home directory: Permission denied。尝试 cd 到任何一个文件夹都被提示没有权限。可是 ls 打印出的文件夹权限明明都是777。最后发现原来是在 NAS 的 管理系统中,我将用户组对文件夹的访问权限设成了 No Access。原来管理系统设置的权限优先级比操作系统层面的文件夹权限还高,也不知是怎么做到的。

    git 仓库创建好后,能够正常 pull。但是 push 的时候一直在 writing objects 这一步卡住。依然是因为权限问题。这回就是操作系统层面的文件夹权限没设置好——我的 git 用户账号对 git 仓库文件夹没有写权限。后来我在用户主目录下重新创建了一遍仓库才解决了该问题。

    顺便吐槽一下 Synology NAS 的 Git Server 文档。原文档让我在 /volumeX 目录下用 git init  创建 git 仓库,并且在客户端用 ssh://用户名@服务器地址/git仓库文件夹名  形式的 URL 访问 git 服务器。然而实际上要用  git init --bare --shared 命令来创建仓库, 用  ssh://用户名@服务器地址/git仓库绝对路径 形式的 URL —— URL 末尾应该是 git 仓库的绝对路径,而不是 git 仓库文件夹名。

  • List<A>转型为List<B> 2018-09-02 分类: 技术

    假设现在有两个类—— A 和 B ,其中 A 是 B 的子类。将 A(子类)的引用转换为 B(父类)的引用是很普通的事,在任何编程语言中都不存在问题。但是将 List<A>(子类的容器)转换成 List<B>(父类的容器)就不是那么简单的事情了,因为List<B>并不是 List<A> 的父类。

    不过从 .NET 4.0起,我们已经可以在 C# 中写

    这样的代码了。这是因为 .NET 4.0 支持 C# 的变体范型(variance for generic type parameters)特性。关于其具体信息可以在网上搜索 “C# 协变 逆变” 。协变的英文是 Covariance,逆变的英文是 Contravariance。

    如果想在 Unity 中使用这个特性的话,就要将 Unity 用的 .NET 运行时改为4.0以上。方法是将 Project Setting -> Player -> Scripting Runtime Version 改成 Experimental (.NET 4.6 Equivalent)。

  • Unity 实现文字过长显示省略号 2018-08-30 分类: 技术

    需求:假设有一行文字由于界面空间不足只能显示一部分,那么剩余部分需要被截断,并且显示出来的文字末尾需要添加省略号“…”。比如“一二三四五六七八九十”,最终显示出来的样子是“一二三四…”。

    这个需求在 CSS 中倒是挺好实现的。(题外话:这只限于显示出来的文字只有一行的情况。多行的情况下还是没那么容易,除非采用 WebKit 的 CSS 扩展属性 -webkit-line-clamp,不考虑兼容 W3C 标准。)但是在 Unity 中则需要摸索一下。目前已知的有两种方案。

    方案一:使用 TextMesh Pro

    当前的 Unity 2018 已经集成了 TextMesh Pro 插件(未确认之前的 Unity 版本是否集成)。这个插件非常强大,自然也包含了文字溢出时显示省略号的功能。使用时只要将 TextMesh Pro UGUI 组件中的 Overflow 选项设为 Ellipsis 即可。这个插件甚至能够很自然地实现多行文本的省略号截断。

    (更多…)

  • EMwI更新:版本1.1 支持批量添加 2018-08-29 分类: 技术

    使 WordPress 媒体库支持外链图片的 External Media without Import 插件自发布以来,就收到了好些用户的反馈。其中相当一部分用户希望插件可以支持批量添加的功能,也就是一次性可以添加多个 URL 。非常惭愧的是,虽然我大约一年前就收到了这样的建议,并且自己也觉得应该添加这个功能,但却一直没能抽出时间做这件事。两个月前本想利用自己睡前或是上学前的零碎时间一点点把代码给写了,但途中又因为各种事情中断了。

    直到这几天终于把批量添加的功能实现并发布了出来。当前最新版本更新到1.1。该版本将原本只能输入一行的文本框( <input> )改成了可输入多行( <textarea> )。用户可在文本框中输入多条 URL,每条 URL 占一行。点击添加按钮就会一次性将文本框中的多条 URL 添加进媒体库中。

    其实现在因为我个人网站的主机搬到了 Vultr,配置比以前好了不少,所以我自己已经(至少是暂时)用不上 External Media without Import 这个插件了。但是插件自发布以来陆续收到好些用户的肯定、期待和反馈,甚至连给我差评的都会跟我说声 sorry,并肯定我的想法。再加上插件在 WordPress 官方上的主页也显示插件有1000多个活跃安装。这些都是对我莫大的鼓励,也让我感到做好这个插件不仅仅是为了我自己。大家的反馈也让我有点找到了自身的价值。因此现在基本是怀着不愿辜负这批用户的心情继续改进着这款插件。

    昨晚发布版本1.1之后,我就开始一条条地回复那些曾经提出希望支持批量添加功能的用户留言。然而有点让人难过的是,WordPress 官网上有的留言太旧,都被系统自动关闭,无法回复了。这让我感到更加惭愧。

    不过只要还有用户在期待,我还是会继续维护改进这个插件的。这款插件还有很多可以改进的地方,除了批量添加的功能外,用户们也提出了不少其它问题。版本1.1发布之后可能也会有新的 bug。只要我能抽出可支配的业余时间,都会优先处理 External Media without Import 插件的问题的。希望我做的东西可以继续为大家带来价值。

点击查看所有文章 >>