我怎样才能同时拥有CrossPlatformInput&输入同时工作?

时间:2017-03-28 03:40:06

标签: c# android unity3d

Unity很新,试图了解C#,我一直在观看一些关于让Android操纵杆与游戏兼容的教程。我试图让屏幕上的操纵杆和正常输入一起工作

所以我想我可以输入

anim.SetFloat("Turn", CrossPlatformInputManager, Input.GetAxis("Horizontal"));

anim.SetFloat("Turn", CrossPlatformInputManager & Input.GetAxis("Horizontal"));

anim.SetFloat("Turn", CrossPlatformInputManager + Input.GetAxis("Horizontal"));

显然错了! 然后我尝试将它们分开放在

void Update()
{
    Turning ();
    Move();
}

void Turning()
{
    anim.SetFloat("Turn", CrossPlatformInputManager.GetAxis("Horizontal"));
    anim.SetFloat("Turn", Input.GetAxis("Horizontal"));
}

void Move()
{
    anim.SetFloat("Forward", CrossPlatformInputManager.GetAxis("Vertical"));
    anim.SetFloat("Turn", Input.GetAxis("Horizontal"));
}

但是Unity决定首先使用Input而不是CrossPlatformInputManager

我知道在我的脑海中通过创建2个额外的浮动和一个混合树来为它自己创建一个解决方案,但这似乎是愚蠢的,为每个输入创建2个单独的动画......

答案很简单,但我不久前开始

如果有人能解释',& +'对我来说也会很棒!

感谢有人设法回复!

1 个答案:

答案 0 :(得分:0)

您可以在#define(Ref)中包含特定于平台的控件(或其他逻辑)。

void Turning()
{
    #if UNITY_STANDALONE_WIN || UNITY_EDITOR
                anim.SetFloat("Turn", CrossPlatformInputManager.GetAxis("Horizontal"));
    #endif
    #if UNITY_ANDROID
                anim.SetFloat("Turn", Input.GetAxis("Horizontal"));

    #endif
            }