Skip to content

Latest commit

 

History

History
92 lines (64 loc) · 1.5 KB

WASM.md

File metadata and controls

92 lines (64 loc) · 1.5 KB

WASM

Referred

https://github.com/bevyengine/bevy/tree/latest/examples#examples

Setup

rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli

Dependencies

No dynamic_linking:

[dependencies]
# bevy = { version = "0.13.0", features = ["dynamic_linking"] }
# FOR WASM BUILD:
bevy = "0.13.0"

and add [profile.wasm-release]

Build

cargo build --profile wasm-release --target wasm32-unknown-unknown
# or
# cargo build --release --target wasm32-unknown-unknown

wasm-bindgen --out-name bevy_template \
  --out-dir wasm/target \
  --target web target/wasm32-unknown-unknown/wasm-release/bevy_template.wasm

Copy assets

Copy asset files to wasm directory.

Use wasm-opt

Installing

brew install binaryen

Optimize

wasm-opt -Oz --output wasm/target/optimized.wasm wasm/target/bevy_template_bg.wasm
mv wasm/target/optimized.wasm wasm/target/bevy_template_bg.wasm

INDEX.HTML

Create index.html file

Run

Then serve wasm directory to browser. i.e.

# cargo install basic-http-server
basic-http-server wasm

Never check asset meta

    App::new()
        .insert_resource(AssetMetaCheck::Never)
        ...
        .run();

For Android

Set scale factor override:

    DefaultPlugins.set(WindowPlugin {
        primary_window: Some(Window {
            resolution: WindowResolution::new(800., 600.).with_scale_factor_override(1.0),
            ..default()
        }),
        ..default()
    })