真Unity3d_编辑器自定义向导型窗口,可实现快速构建

自问写了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

真Unity3d_编辑器自定义向导型窗口,可实现快速构建_第1张图片

* 不要做菜鸟,不要做菜鸟,不要做菜鸟,重要事情说三遍

其实成为更好的人,写更好的程序,真的不能直接给你带来实质的利益收入或者福利提升,甚至也不能给你职业生涯添加什么助力,但要成为什么样的人,除了一点先天环境因素,99%可能还是取决于你自己,加油,程序员!

你可能感兴趣的:(每天一点u3d)