Archived project to wrap the Urho3D engine for C#, allowing it to be used on any .net core (NetStandard 2.0+ ie .net6/7/8) runtime and is fully mobile supported.

EgorBo 2d2162fea4 set window default size for UWP matching SwapChain control il y a 8 ans
Bindings 2d2162fea4 set window default size for UWP matching SwapChain control il y a 8 ans
Docs 3aa1039af5 update docs one more time il y a 8 ans
Extensions dee4de11d4 make ARKitComponent and ARCoreComponent more linker friendly, fix android crash (race condition because of sleeps in the for loops) il y a 8 ans
Nuget 8d61de1ab5 Add uwp 64bit binary to nuget, close #277 il y a 8 ans
ProjectTemplates bfc2867003 Rename HoloLens to SharpReality (see https://github.com/xamarin/urho/issues/206) (rename folders and file names) il y a 8 ans
Samples @ b05f2f2fe0 93f0292b1e update samples il y a 8 ans
SharpieBinder 4f97d92bb3 refresh-docs il y a 8 ans
Tests efda9f733a add uwp64 to Package x64 config il y a 8 ans
Urho3D 61db2f263d forgot to add UrhoUWP.cpp/.h il y a 8 ans
docs 2f83a89636 update docs il y a 8 ans
.gitignore 5388d5cb3d Rename HoloLens to SharpReality (see https://github.com/xamarin/urho/issues/206) il y a 8 ans
.gitmodules fc1c376cef Move Urho3D to xamarin/Urho3D il y a 10 ans
ClassHierarchy.md f1fdc5561c Update ClassHierarchy.md il y a 10 ans
LICENSE 7d8915c901 Update license il y a 10 ans
MakeAndroid d5c0cca275 fix armeabi build il y a 8 ans
MakeMac 4eedcdd824 update bindings il y a 8 ans
MakeSharpReality e017cd7139 use vs2017 by default on windows il y a 8 ans
MakeSharpReality.bat bfc2867003 Rename HoloLens to SharpReality (see https://github.com/xamarin/urho/issues/206) (rename folders and file names) il y a 8 ans
MakeUWP 1caf62af6f Update MakeUWP il y a 8 ans
MakeUWP.bat e96bedfeea UniversalWindowsPlatform -> 5.3.3 in UrhoSharp.HoloLens il y a 8 ans
MakeWindows e017cd7139 use vs2017 by default on windows il y a 8 ans
MakeWindows.bat e96bedfeea UniversalWindowsPlatform -> 5.3.3 in UrhoSharp.HoloLens il y a 8 ans
Makefile f16bfe8372 fix #293 wrong order in Consts.cs il y a 8 ans
MakeiOS f38c3aea1f Use xcode 9.2 for ios, add RenderPathCommand_SetShaderParameter_Matrix4 il y a 8 ans
MaketvOS 400fa527bd Rename binding to Binding and docs to Docs il y a 10 ans
Namespaces.md b38dae7c04 Add some ideas on renamespacing il y a 10 ans
README.md 5388d5cb3d Rename HoloLens to SharpReality (see https://github.com/xamarin/urho/issues/206) il y a 8 ans
TODO.md 74f3bb9ec6 Update TODO, add RenderPath.Clone il y a 10 ans
Urho.ARCore.nuspec db5206bbb8 fix Urho.ARCore.nuspec il y a 8 ans
Urho.Cocoa.nuspec 58c12d5a8c update nuspecs (1.8.6) il y a 8 ans
Urho.Forms.nuspec 8d61de1ab5 Add uwp 64bit binary to nuget, close #277 il y a 8 ans
Urho.SharpReality.nuspec 58c12d5a8c update nuspecs (1.8.6) il y a 8 ans
Urho.Tools.nuspec a9c5f7ec4c update nuget version il y a 8 ans
Urho.WinForms.nuspec 58c12d5a8c update nuspecs (1.8.6) il y a 8 ans
Urho.Wpf.nuspec 58c12d5a8c update nuspecs (1.8.6) il y a 8 ans
Urho.nuspec 8d61de1ab5 Add uwp 64bit binary to nuget, close #277 il y a 8 ans
Urho.sln b52693f4ba update Urho.sln Package config il y a 8 ans
UrhoSharp.png 74c4007c00 New icon for the project templates and the Nuget il y a 10 ans

README.md

# UrhoSharp

UrhoSharp is a lightweight Game Engine suitable for using with C# and F# to create games and 3D applications. The game engine is available as a portable class library, allowing your game code to be written once and shared across all platforms. UrhoSharp is powered by Urho3D, a game engine that has been under development for more than a decade. More information can be found in the UrhoSharp documentation. The bindings for Urho3D are licensed under the MIT license, as found on the LICENSE file.

Supported platforms:

  • Windows, WPF, WinForms
  • iOS, tvOS
  • macOS
  • Android
  • UWP (x86 only)
  • HoloLens (3D holograms)
  • Xamarin.Forms (iOS, Android, UWP)

UrhoSharp can be embedded into any of these platforms as a custom view (UIView, Grid, Surface, etc).

Samples

Sample code lives in https://github.com/xamarin/urho-samples and repository has them as a git submodule. Samples use UrhoSharp via nuget.

Sample Sample Sample

Setup

Quick start

To help developers get up and running quickly with UrhoSharp we are providing a solution template for Visual Studio (you can find it in "Online templates" tab). This template consists of PCL+Android+iOS+Mac/Windows with a simple scene and some assets (Xamarin Studio templates will be available soon):

VS

How to build bindings

This is currently a little messy, so YMMV.

In order to compile binaries for all platforms you will need both Windows and OS X environment. Please follow these steps:

1. Install:

  • XCode
  • Xamarin Studio
  • CMake (brew install cmake)
  • Mono 64 bit (Mono 4.4+ or brew install mono)
  • Command Line tools (xcode-select --install)
  • Android NDK (and ANDROID_NDK variable)

2. Clone the repository including submodules

git clone [email protected]:xamarin/urho.git --recursive

3. Compile Urho.pch

The following command will download Clang 3.7.0 if you do not have it installed, and use this to scan the Urho header files:

make PchMac

4. Generate C# bindings from Urho.pch

Open SharpieBinder/SharpieBinder.sln via Xamarin Studio and change .NET runtime to 64 bit mono (installed from homebrew is usually located in "/usr/local/Cellar/4.x.x.x"). Run SharpieBinder project and make sure it generated *.cs files in /bindings/generated dir.

Alternatively, you can do make SharpieBinder.

Then execute:

make ParseEventsMac

it should generate bindings/generated/events.cpp file

5. Compile UrhoSharp for Mac (fat dylib)

make Mac

it takes 5-10 minutes.

6. Compile UrhoSharp for iOS (fat dylib: i386, x86_64, armv7, arm64)

make iOS

Note: Make sure you have an iOS 9.0 simulator target or modify SDKVER to target another simulator.

7. Compile UrhoSharp for Android (armeabi, armeabi-v7a, arm64, x86, x86_64)

make -j5 Android

-j5 means a job per ABI. Make sure you have installed Android SDK and NDK (see MakeAndroid file)

8. Compile UrhoSharp for Windows (64 bit)

Obviously you can't do it on OS X so you have to switch to Windows environment. Make sure you have installed:

  • Visual Studio 2015
  • CMake
  • GNU make (cygwin)

SharpieBinder doesn't work on Windows yet so you will have to copy bindings/generated folder from OS X environment to Windows.

Execute:

make Windows64  (or Windows32)

(you can also compile Android on Windows via "make Android") Then, open Urho.sln and compile MonoUrho.Windows project in Release configuration.

All compiled binaries could be found in the Bin/{platform} folder.

**9. Compile UrhoSharp for UWP and HoloLens

Execute:

make UWP32
make SharpReality

And compile MonoUrho.UWP and MonoUrho.HoloLens projects in Release (x86 only) configuration.

Updating Documentation

Once you have a build, run the refresh-docs target, like this:

make refresh-docs

This will update the documentation based on the API changes. Then you can use a tool like DocWriter [1] on the Mac to edit the contents, or just edit the ECMA XML documentation by hand with an XML editor.

[1] http://github.com/xamarin/DocWriter