/unity-webgl-copy-and-paste

Support Copy and Paste in Unity WebGL

Primary LanguageC#BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Unity WebGL Copy and Paste

For some reason Unity decided not to support copy and paste in WebGL. Here is an attempt to add it back in. No promises that it's perfect 😅

screenshot

At the moment there is only support for InputField and TMPro.TMP_InputField

Instructions

  1. Download and add in this unity package into your project.

  2. If you are using TMPro.TMP_InputField then edit Assets/WebGLCopyAndPaste/Scripts/WebGLCopyAndPaste.cs and uncomment this line

// #define WEBGL_COPY_AND_PASTE_SUPPORT_TEXTMESH_PRO

Alternatives

This might be better?

https://github.com/kou-yeung/WebGLInput

Browsers tested

The plugin has been tested an confirmed working on:

  • Edge 120.0.2210.61 (Chromium) on Windows 10, Unity 2022.3.10, 2021.3.25 and 2020.3.18.
  • Firefox 120.0.1 on Windows 10, Unity 2022.3.10, 2021.3.25 and 2020.3.18.
  • Safari 16.6 on macOS Ventura 13.6, Unity 2022.3.10.
  • Chrome 118.0.5993.70 on macOS Ventura 13.6, Unity 2022.3.10.
  • Firefox 120.0.1 on macOS Ventura 13.6, Unity 2022.3.10.

Issues

  • Non Alphabetic characters

    See this thread. You apparently need to include the fonts in your Unity project.

  • Ctrl-A/⌘-A selects other HTML on the page

    1. Make your own WebGL template that doesn't have anything to select. Maybe this one though I didn't try it.

    2. Make your own WebGL template and use user-select: none; in your CSS to make whatever parts of the page you want to prevent from being selected.

ChangeList

  • 0.3.0

    • Added Preserve attribute to WebGLCopyAndPasteAPI class, and AlwaysLinkAssembly to the assembly, so Unity doesn't strip the code if the plugin is moved to a package
  • 0.2.1

    • Fixed paste not working on some browsers

    • Fixed labels not being visually updated on some browsers

    • Fixed potential null reference exception when EventSystem.current is null

    • Substituted deprecated JavaScript Window.event

  • 0.2.0

    • Fixes for Unity 2021.2
  • 0.1.0

    • Removed the need for MonoBehaviours

    • Replaced messages with proper callbacks

    • Fixed data storing in window

  • 0.0.2

    • Support cut

    • Support Safari

  • 0.0.1

    • Initial Release

License: BSD-3-Clause