nRenderContext的LocalVar能否存在相同handle的多个nVariable呢?

0 views
Skip to first unread message

kaikai

unread,
Jan 22, 2007, 1:50:17 AM1/22/07
to 用nebula2 sdk来做游戏
比如一个.n2文件,包含了多个skinanimator,则每个skinanimator在RenderContextCreated时都会调用AddLocalVar添加一个handle是characterHandle的nVariable。
这样的后果是使用nRenderContext::FindLocalVar只能拿到第一个skinanimator添加的nVariable,而其他的则拿不到...

我的临时解决方法,添加nRenderContext::GetNumVars() const
返回localvar.Size(),然后依次取每个localvar自己判断是否需要用。不知道大家有什么好主意?

Pierric

unread,
Jan 22, 2007, 8:15:31 AM1/22/07
to 用nebula2 sdk来做游戏
为什么需要多个skinanimator呢?

kaikai

unread,
Jan 22, 2007, 11:04:31 PM1/22/07
to 用nebula2 sdk来做游戏
原本是1个模型,
现在要通过attachmentnode组合起来,而他们只用一个rendercontext,于是各自的skinanimator添加localvar到同一个rendercontext内.
于是出现上述问题.

Pierric

unread,
Jan 23, 2007, 7:04:43 AM1/23/07
to 用nebula2 sdk来做游戏
看来我想不出什么办法。但是我觉得attachmentnode不就是为了组合多个子模型而设计的吗,不应该会造成这种问题才对的阿。

kaikai

unread,
Jan 23, 2007, 9:37:13 AM1/23/07
to 用nebula2 sdk来做游戏
它们本身并没有出现问题,因为每个skinanimator访问自己添加的variable并不需要通过findlocalvar而是直接有指针。
只不过对外部访问这些variable时需要一个能够区分的接口。

wakelong

unread,
Jan 24, 2007, 1:58:46 AM1/24/07
to 用nebula2 sdk来做游戏
每个nSkinAnimator有个characterSetIndex,有了这个就可以通过GetLocalVar(characterSetIndex)得到你对应的var
Reply all
Reply to author
Forward
0 new messages