NGUI学习:(1)spine导入后图层顺序的问题

最近在使用ngui做2d游戏时,遇到一个问题。ngui大家都知道,图层顺序,通过depth来调整。但是导入进来的spine动画,没法按照depth调整,肿么办呢。

我查阅了这位同学的文章http://qforce.qifun.com/newspaper/2014/11/24/spine-ngui-intergrate/,然后还有很多同学的文章,得到了以下解决方案。:

方案:1

 
可以修改renderer的sortOrder次序来实现,这个没成功
方案:2
这个事推荐最多的方案,创建两个camera,控制场景和ui,但是我嫌太麻烦了,就没有再用。
方案:  3
这个就是我具体使用的方案

不管是什么内容,都要通过draw call来渲染,我们更改下渲染队列的顺序就行了,首先我们要知道
ngui的panel默认的Render Queue是3000
打开UIPanle.cs文件,可以找到:
/// 
	/// Render queue used by the panel. The default value of '3000' is the equivalent of "Transparent".
	/// This property is only used if 'renderQueue' is set to something other than "Automatic".
	/// 

	public int startingRenderQueue = 3000;

在ngui的read me可以找到
3.3.6 (previously 3.0.8 f7)
- FIX: UIPanel's "explicit" render queue option should now work correctly.
- FIX: UITweener.Play should behave better with duration of 0.
- FIX: NGUITools.FindCamera will prioritize the Main Camera over others (fix for Unity Water).
- FIX: Null exception fix in UIKeyBinding.
所以,现在panle的Redn Queue是可以手动修改的,如下
NGUI学习:(1)spine导入后图层顺序的问题_第1张图片

spine默认的Render Queue是2000
所以我们这样
分好层,不同层放入不同的panel
设置天气层panel1  Render Queue = 1000
设置宠物    pet       Render Queue  = 2000;
显示在宠物上层的场景放入pane2  Render Queue  = 3000;

这样,就实现了背景,人物,前景,依次渲染,希望能对大家有所参考。



你可能感兴趣的:(ngui,ngui,解决方案,spine,渲染次序,动画,unity)