Unity 3D

安装指南

您可以在以下位置找到 .unitypackage 文件: https://github.com/Realistic3D/real_api_unity/releases

渲染

1. 添加登录类

  • RealAPI类添加到任何活动的gameObject上,并添加您的登录信息.

using REAL;
using REAL.Networks;

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

    private void Awake()
    {
        real = GetComponent<RealAPI>();
    }
}
  1. 获取 Real API 场景(二进制场景)

您可以渲染整个场景,甚至可以根据您的需求渲染场景中的某些 GameObject

// Step 1: Get scene from whole Scene

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

// Step 1: Get scene from some gameobjects in Scene

Camera camera = myCam; // Optional
List<GameObject> allObjects = requiredObject; // Required
var realScene = Real.RealScene(allObjects, camera);

注意:

  • camera(相机)是此函数的可选参数。

  • 如果场景中有多个相机或相机列表,您想要渲染的相机可以命名为 REAL_EYE,或者您可以直接将其传递给函数 Real.RealScene(allObjects, camera)

  1. 创建新作业

// Step 2: Apply new job

var apiResponse = await ApiRequests.PostRequest(login, AskService.NewJob);
var resData = apiResponse.data; 
var uri = resData.url;
  1. 上传场景

// Step 3: Upload scene

bool uploaded = await ApiRequests.PutRequest(uri, realScene);
  1. 提交作业

// Step 4: Submit job

await ApiRequests.PostRequest(login, AskService.Submit, 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;
        
        // Step 1: Get Scene
        
        var camera = Camera.main;
        var scene = SceneManager.GetActiveScene();
        var realScene = Real.RealScene(scene, camera);
        
        // Step 2: Apply new job
        
        var apiResponse = await ApiRequests.PostRequest(login, AskService.NewJob);
        var resData = apiResponse.data; 
        var uri = resData.url;
        
        // Step 3: Upload scene

        bool uploaded = await ApiRequests.PutRequest(uri, realScene);
        
        // Step 4: Submit job

        await ApiRequests.PostRequest(login, AskService.Submit, resData.jobID);
    }
}

Last updated