例如
安卓专区
public class MainActivity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public int divide(int a, int b) throw Exception{
return a / b;
}
}Run Code Online (Sandbox Code Playgroud)
Unity3D部分:
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
int rlt = jo.Call<int>("divide", new object[](10, 0));Run Code Online (Sandbox Code Playgroud)
显然,在Java中调用divide(10, 0)时会产生异常。但是,Unity3D代码中可以捕获异常吗?谢谢!
我想从服务器下载文件,然后按以下方式定义swagger文件:
swagger: '2.0'
################################################################################
# API Information
################################################################################
info:
version: v0
title: XXX REST API
host: api.xxx.io
basePath: /v0
schemes:
- http
- https
produces:
- application/json
################################################################################
# Security
################################################################################
################################################################################
# Parameters
################################################################################
parameters:
productId:
name: productId
in: path
description: The product identifier
type: string
required: true
################################################################################
# Paths
################################################################################
paths:
/products:
get:
description: Get the list of products
operationId: getProducts
responses:
200:
description: OK
schema:
type: array
items:
$ref: '#/definitions/Product'
/resources/{productId}:
parameters:
- $ref: '#/parameters/productId'
get: …Run Code Online (Sandbox Code Playgroud)我在开发unity3d项目时使用AndroidJavaObject.我尝试了一个非常简单的代码,如下所示,但它会引发标题中的异常.
using UnityEngine;
using System.Collections;
using System.Threading;
public class MainScript : MonoBehaviour {
// Use this for initialization
void Start () {
}
void OnGUI()
{
if (GUI.Button(new Rect(50, 50, 1000, 200), "Open Activity"))
{
Debug.Log("pressed");
Thread t1 = new Thread(new ThreadStart(ListenThread));
t1.IsBackground = false;
t1.Start();
}
//quit
if (Input.GetKey(KeyCode.Escape) || Input.GetKey(KeyCode.Home))
{
Application.Quit();
}
}
public static void ListenThread()
{
AndroidJavaObject jo = new AndroidJavaObject("java.lang.String", "some_string");
int hash = jo.Call<int>("hashCode");
Debug.Log(hash);
}
}Run Code Online (Sandbox Code Playgroud)
但是,如果我没有按如下方式将AndroidJavaObject放在一个线程中,它将正常运行.
using UnityEngine;
using System.Collections;
using …Run Code Online (Sandbox Code Playgroud)