LogoLogo
Quick Links
  • Arcware Cloud
  • Arcware Cloud Platform
    • Getting started with Arcware Cloud
      • Sign up and sign in
      • Select a Plan & Creating your Tenant
      • Creating your Tenant
      • 04. Creating your first project
      • 05. Upload and manage your Unreal packages
      • 06. Setting up your project
      • 07. Preview and share the stream
      • 08. Upgrade your Tenant
      • 👑09. Organization
      • 👑10. Add-ons
      • 11. Help Center
      • 👑12. Customer Support
    • 👑Add-ons guide
      • Direct Flow
      • Asset Management
    • Advanced settings
      • 01. AFK Module - User inactivity
      • 02. Max instance run-time
    • Common Arcware Cloud Questions
  • Unreal Engine Setup
    • Set up Pixel Streaming in your own project​
      • 01. Core Settings
        • 01.1. Plugin
        • 01.2. Pixel Streaming Input / Json messages
        • 01.3. Resolution
        • 01.4. Camera Aspect Ratio
        • 01.5. Framerate
        • 01.6. Mouse
        • 01.7. Touch Input Setup for Mobile
        • 01.8. DirectX version
      • 02. Optional Settings
        • 02.1 Touch Controllers
        • 02.2 Playing Media files
    • Using the Arcware Pixel Streaming Template Project
      • Template Overview
      • Getting Started
        • 01. Template download
        • 02. Arcware Blueprints
          • 02.1. Arcware GameMode
          • 02.2. Arcware Player Controller
            • 02.2.1. Sending and Receiving Json messages
            • 02.2.2. Creating and Testing Your Own Events
          • 02.3. Arcware Pawn
            • 02.3.1 Change Movement Mode
            • 02.3.2 Set Collision Channels
            • 02.3.3 Add new camera views
          • 02.4. Arcware HUD
        • 03. Packaging your project
  • ARCWARE FEATURES
    • Screenshot Functionality
      • Frontend Overview
        • Web UI
        • In-Game UI
      • Blueprint overview
  • Web Integration
    • ⬆️PixelStreaming WebSDK
      • Implementing the stream on your app
        • Getting Started
        • Code examples
          • Javascript + HTML
          • React
          • VueJS
          • AngularJS
        • Migration from @arcware/webrtc-plugin
        • Best practices
      • Configuration
      • Interacting with the Stream
        • Stream Container
        • Video Element
        • Customizing the User Interface
        • Handling Dynamic Content
        • Stream Display Customization
      • Interacting with Unreal Engine
      • In depth
        • Ticket destroyed.
        • Events handlers
        • Disconnect
        • ConnectionIdentifier
        • Settings-Menu
        • AFK-module
      • Showcase
    • ⬇️WebRTC Plugin
      • Getting started
      • Props and Types
      • SizeContainer, container and videoRef
      • Enabling the audio
      • Afk-module
      • Interacting with Unreal Engine
      • Example WebRTC Plugin Applications
        • React
        • AngularJS
        • VueJS
        • Plain HTML
Powered by GitBook
LogoLogo

Arcware Cloud Platform

  • Getting started​
  • Add-ons guide
  • Common Arcware Cloud Questions

Unreal Engine Setup

  • Set up Pixel Streaming in your own project​
  • Using the Arcware Pixel Streaming Template Project
  • Common Unreal Engine Questions

Arcware Features

  • Screenshot Functionality

Web Integration

  • PixelStreaming WebSDK
  • WebRTC Plugin

Copyright 2024 - Arcware GmbH

On this page
  1. Web Integration
  2. WebRTC Plugin

Interacting with Unreal Engine

EmitUIInteraction is a function that is being called on the newWebRTC object, which is an instance of the WebRTCClient class. This function is used to send commands to the WebRTC server to trigger specific actions or events.

In the given code example, handleSendCommands is a function that takes an object as an argument and calls emitUIInteraction on the newWebRTC object with the object as its argument.

Note that you must send these commands in the exact same format as defined in the logic of the blueprints of your Unreal Engine app. If the format doesn't match, the commands will not have any effect on the UE app.

The command object contains a property/Key body_color with different values for each button click event. When any of the buttons with class names "button button-1", or "button button-2" are clicked, the corresponding handleSendCommands function is called with the respective command object containing the body_color property with different values.

This triggers the emitUIInteraction function on the newWebRTC object, which sends the command object to the WebRTC server to perform the desired action, such as changing the body color to the specified value on the server side.

The server then sends the updated information to connected clients, which may trigger UI changes on the client side.

Correct:

newWebRTC.emitUIInteraction({ body_color: "body_color_01" })}

Not correct:

newWebRTC.emitUIInteraction({ body_color: "body_color_01", rim_style: "rim_style_02" })}

How to use in a project:

  • React:

const handleSendCommands = (command) => {
    newWebRTC.emitUIInteraction(command);
  };
  
return 
<div>
 <button onClick={() => handleSendCommands({ body_color: "body_color_01" })}>
  Change to color 1
 </button>
 <button onClick={() => handleSendCommands({ body_color: "body_color_02" })}>
  Change to color 2
  </button>
</div>
  • AngularJs

template: `
 <div ng-controller="MyController">
  <button ng-click="handleSendCommands({ body_color: "body_color_01" })">
    Change to color 1
  </button>
  <button ng-click="handleSendCommands({ body_color: "body_color_02" })">
    Change to color 2
  </button>
</div>
  `,

$scope.handleSendCommands = function(command) {
newWebRTC.emitUIInteraction(command);
};
  • VueJS

<template>
  <div>
    <button @click="handleSendCommands({ body_color: "body_color_01" })">
      Change to color 1
    </button>
    <button @click="handleSendCommands({ body_color: "body_color_02" })">
      Change to color 2
    </button>
  </div>
</template>

<script>
 export default {
  methods: {
    handleSendCommands(command) {
      newWebRTC.emitUIInteraction(command);
    }
  },
 };
</script>
  • Plain HTML

<div>
  <button onclick="handleSendCommands({ body_color: 'body_color_01' })">
    Change to color 1
  </button>
  <button onclick="handleSendCommands({ body_color: 'body_color_02' })">
    Change to color 2
  </button>
</div>

<script>
function handleSendCommands(command) {
  newWebRTC.emitUIInteraction(command);
}
</script>
PreviousAfk-moduleNextExample WebRTC Plugin Applications

Last updated 1 year ago

⬇️