自问写了Unity几年,没见过这个 ScriptableWizard 类。(具体用法就很多了,如果你写过C# Sharepoint Workflow等)
也不是想赖谁,我确实没有这个类的什么需求,也确实就是这几年团队太菜(这么多人,居然一点研发精神都没有,服了)
最近,主要是因为最近的项目被恶心到了,一个菜鸟程序员,把他之前更加菜鸟团队的方案套到我这个项目来了
大量使用ScriptObject,大量Config,大量引用,导致游戏项目开发,调试等过程极其缓慢
大量的Ctrl + D, 大量的Enum,半点抽象逻辑都没有,真被恶心到了
然后,看乐乐姐的代码,同样的Unity底层脚本的用法,简单几句代码,却包含所有巧思秒想的沉淀,
为什么都是写程序(人家乐乐姐,甚至都不自称为程序员),差别可以这么巨大?
如下乐乐姐的代码,没有什么好说的,在国内其实很多人代码都不需要备注,你达到一定水平,当你对自己的代码有一点纠错能力,你写的代码自然能被别的程序员看懂,我是真不相信以下代码是一步写成的,据说德国那种计划3天,做1个小时是能有这样的代码,也确实这世界上是存在天才吧(里面很多英文备注,估计也是深刻理解或是抄官方文档和例子后的产出,所以说抄出世界水平也还不赖)
其实是下面代码应该是各方面作用的结果,人家是由代码设计+代码审查+其他过程的综合结果,国内很多牛人单人写一个框架,而且坑少,拿很少钱的情况下,能出如此的成品已经很了不起了,当然也付出了无限的时间,一天24小时,18个小时算极限了。。。
public class RenderCubemapWizard : ScriptableWizard {
public Transform renderFromPosition;
public Cubemap cubemap;
void OnWizardUpdate () {
helpString = "Select transform to render from and cubemap to render into";
isValid = (renderFromPosition != null) && (cubemap != null);
}
void OnWizardCreate () {
// create temporary camera for rendering
GameObject go = new GameObject( "CubemapCamera");
go.AddComponent();
// place it on the object
go.transform.position = renderFromPosition.position;
// render into cubemap
go.GetComponent().RenderToCubemap(cubemap);
// destroy temporary camera
DestroyImmediate( go );
}
[MenuItem("GameObject/Render into Cubemap")]
static void RenderCubemap () {
ScriptableWizard.DisplayWizard(
"Render cubemap", "Render!");
}
}
上面代码包含很多,就不说了,懂得就懂了,不懂得说了你再练几年,都不见得能掌握
用法:GameObject -> render to CubMap
* 不要做菜鸟,不要做菜鸟,不要做菜鸟,重要事情说三遍
其实成为更好的人,写更好的程序,真的不能直接给你带来实质的利益收入或者福利提升,甚至也不能给你职业生涯添加什么助力,但要成为什么样的人,除了一点先天环境因素,99%可能还是取决于你自己,加油,程序员!