如何在Globals上引用脚本



好吧,所以我在unity中找到了一个有趣的基于2D输入的操纵杆。它的工作方式很简单——你把它引用为类型(不是GameObject,而是VariableJoycle,DynamicJoycle(,然后得到它的"水平"或"垂直"值。我的问题是,我根本无法让它与我得到的控制器一起工作。它基于旧的输入系统。我不知道这个问题有多愚蠢,但请帮忙。我只是不能通过拖动来引用它,因为它是一个Globals脚本,而且它不在任何对象中,我也不能将它添加到那里。我真的很想得到帮助。

控制器:https://github.com/cjddmut/Unity-2D-Platformer-Controller操纵手柄:https://assetstore.unity.com/packages/tools/input-management/joystick-pack-107631

操纵杆工作原理的快速示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class JoystickPlayerExample : MonoBehaviour
{
public float speed;
public VariableJoystick variableJoystick;
public Rigidbody rb;
public void FixedUpdate()
{
Vector3 direction = Vector3.forward * variableJoystick.Vertical + Vector3.right * variableJoystick.Horizontal;
rb.AddForce(direction * speed * Time.fixedDeltaTime, ForceMode.VelocityChange);
}
}

Globals.cs:

using UnityEngine;
namespace PC2D
{
public class Input
{
public const string HORIZONTAL = "Horizontal";
public const string VERTICAL = "Vertical";
public const string JUMP = "Jump";
public const string DASH = "Fire1";
}
public class Globals
{
// Input threshold in order to take effect. Arbitarily set.
public const float INPUT_THRESHOLD = 0.2f;
public const float FAST_FALL_THRESHOLD = 0.5f;
public const int ENV_MASK = 0x100;
public const string PACKAGE_NAME = "PC2D";
public const float MINIMUM_DISTANCE_CHECK = 0.01f;
public static int GetFrameCount(float time)
{
float frames = time / Time.fixedDeltaTime;
int roundedFrames = Mathf.RoundToInt(frames);
if (Mathf.Approximately(frames, roundedFrames))
{
return roundedFrames;
}
return Mathf.CeilToInt(frames);
}
}
}

我不能包括播放器控制器电机,因为它太大了,不能放在这里,而且它似乎没有所需的脚本

除了UI之外,我不需要任何其他控件。我将非常感谢你的帮助,因为我找不到更好的控制器了。上一个是在0.2.6的新输入系统上,它根本无法使用UI或触摸控件。将其更新到1.0.0只会破坏脚本(浪费了11个小时试图修复它们,放弃了意识到它根本不适用于1.0.0,重写脚本不是我喜欢的(。请至少尝试描述问题和最简单的解决方案^^

编辑:老实说,我甚至不确定是Globals.cs。我只是找不到其他处理输入的地方。这就是为什么我把控制器留在github上哈哈。抱歉我太笨了

多亏了@Zorgarath,我找到了一个非常简单的解决方案——Globals.cs不是控件处理程序,PlayerController2D.cs是。将GetAxis等更改为操纵杆。水平和操纵手柄。垂直并使跳转和短划线按钮分别连接到脚本(按住跳转按钮复选框(,使其完全受脚本支持。我认为你也可以放弃旧的控制,也可以使用它们。

最新更新