Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在eclipse中访问统一变量_Android_Eclipse_Unity3d_Unityscript - Fatal编程技术网

Android 在eclipse中访问统一变量

Android 在eclipse中访问统一变量,android,eclipse,unity3d,unityscript,Android,Eclipse,Unity3d,Unityscript,在eclipse中是否可以从unity游戏中访问变量(例如高分)? 变量存储在unity脚本中,如下所示: using Assets.Scripts.Events; using Assets.Scripts.Utils; using UnityEngine; namespace Assets.Scripts { public class ScoreManager : CommandMonoBehaviour { public int Score; public void St

在eclipse中是否可以从unity游戏中访问变量(例如高分)? 变量存储在unity脚本中,如下所示:

using Assets.Scripts.Events;
using Assets.Scripts.Utils;
using UnityEngine;

namespace Assets.Scripts
{
public class ScoreManager : CommandMonoBehaviour
{
    public int Score;

    public void Start()
    {
        Subscribe(GameEvents.BasketGotMovingObject, OnBasketGotMovingObject);
    }

    private void OnBasketGotMovingObject(GameEventArgs<MovingObject> args)
    {
        Score = Mathf.Max(0, Score + args.Value.BonusPoints);
        GameEvents.ScoreUpdated.Publish(new GameEventArgs<int>(Score));
    }
}
}
protected void onCreate (Bundle savedInstanceState)
    {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);

        getWindow().takeSurface(null);
        setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);
        getWindow().setFormat(PixelFormat.RGB_565);

        mUnityPlayer = new UnityPlayer(this);
        if (mUnityPlayer.getSettings ().getBoolean ("hide_status_bar", true))
            getWindow ().setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                   WindowManager.LayoutParams.FLAG_FULLSCREEN);

        int glesMode = mUnityPlayer.getSettings().getInt("gles_mode", 1);
        boolean trueColor8888 = false;
        mUnityPlayer.init(glesMode, trueColor8888);

        View playerView = mUnityPlayer.getView();
        setContentView(playerView);
        playerView.requestFocus();
    }
只有一个“UnityPlayer”。
如何访问脚本变量,如“int Score”?

假设您已经在eclipse中打开了解决方案,请确保获得脚本所附加到的游戏对象的组件。你可以用

var scoreManager = GameObject.FindOnbjectOfType(typeof(ScoreManager)) as ScoreManager;
如果您不知道ScoreManager脚本所属的对象。如果您确实知道te脚本所属的对象,则可以使用以下命令(将obj替换为实际名称)

我还假设您从ScoreManager派生的类在某种程度上派生自MonoBehavior,它是将脚本附加到场景中的游戏对象所必需的类


希望这有帮助

标签unity是为Microsoft unity设计的。请不要误用。对不起,那是不可能的。但是,您可以通过创建插件在unity中使用普通java代码。但是,您将无法访问Unity的任何库。要在java中创建插件,您可以使用这个答案作为指导,插件基本上是预编译代码(扩展名为.dll)。dll文件必须放在Assets文件夹中创建的插件文件夹中。文件夹必须命名为“插件”,并直接位于资产文件夹中。要将一个包含编译过的java代码的.jar文件转换为Unity理解插件所需的.dll文件,请遵循上面的链接,但要完全用java来制作Unity游戏,恐怕这是不可能的。希望这有帮助
var scoreManager = obj.GetComponent<ScoreManager>():
scoreManager.Score