跳到主要内容

入门

安装

  • 你可以在以下链接找到 .unitypackage 文件
https://github.com/Realistic3D/real_api_unity/releases

使用

  • 添加登录类
    • RealAPI类添加到任意活动的gameObject上,并添加你的登录信息
using REAL;
using REAL.Networks;

[RequireComponent(typeof(RealAPI))]
public class RendererScene : MonoBehaviour
{
public RealAPI real;

private void Awake()
{
real = GetComponent<RealAPI>();
}
}

步骤 1:

获取场景

  • 你可以渲染 整个场景 或者 场景中的某些gameObjects,这取决于你的需求
// 步骤 1: 从整个场景获取

Camera camera = myCam; // Optional
Scene scene = myScene; // Required
var realScene = Real.RealScene(scene, camera);

OR

// 步骤 1: 从场景中的某些gameobjects获取

Camera camera = myCam; // 可选
List<GameObject> allObjects = requiredObject; // 必需
var realScene = Real.RealScene(allObjects, camera);

注意

  • camera 是这个函数中的可选参数.
  • 如果你在场景中或列表中有多个相机,可以将你想渲染的相机命名为 RealEYE 或者直接传递到函数 Real.RealScene(allObjects, camera)

步骤 2:

创建新任务

// 步骤 2: 创建新任务

var apiResponse = await ApiRequests.PostRequest(login, RequestService.New);
var resData = apiResponse.data;
var uri = resData.url;

步骤 3:

上传场景

// 步骤 3: 上传场景

bool uploaded = await ApiRequests.PutRequest(uri, realScene);

步骤 4:

提交任务

// 步骤 4: 渲染任务

await ApiRequests.PostRequest(login, RequestService.Render, resData.jobID);

完整脚本

using REAL;
using REAL.Networks;
using UnityEngine;
using UnityEngine.SceneManagement;

[RequireComponent(typeof(RealAPI))]
public class RendererScene : MonoBehaviour
{
public RealAPI real;

private void Awake()
{
real = GetComponent<RealAPI>();
}

public async void RenderScene()
{
var login = real.login;

// 步骤 1: 获取场景

var camera = Camera.main;
var scene = SceneManager.GetActiveScene();
var realScene = Real.RealScene(scene, camera);

// 步骤 2: 创建新任务

var apiResponse = await ApiRequests.PostRequest(login, RequestService.New);
var resData = apiResponse.data;
var uri = resData.url;

// 步骤 3: 上传场景

bool uploaded = await ApiRequests.PutRequest(uri, realScene);

// 步骤 4: 提交任务

await ApiRequests.PostRequest(login, RequestService.Render, resData.jobID);
}
}

连接 Socket

你可以查看 REAL.Example.RealSocket 中的示例。 你可以创建任何 UI 按钮(或以其他方式调用 socket)并使用以下示例来连接 socket

public void ConnectSocketClick()
{
Commons.Renderer.canvas.infoPanel.SetStatus("Connecting....");
REAL.Example.RealSocket.Connect();
}

Socket url:

var uri = $"wss://{(RealNetwork.Domain)}/realAPI?app_key={appKey}&prod_key={prodKey}&ins_id={insID}&exp_from=u3d";

获取产品详情:

var prodInfo = await ApiRequests.LoginProduct(Commons.Renderer.real.login);

example