├── .github
└── workflows
│ ├── activation.yaml
│ └── create-release.yaml
├── .gitignore
├── .vs
└── airconsole-unity-plugin
│ └── xs
│ ├── UserPrefs.xml
│ ├── project-cache
│ ├── Assembly-CSharp-Debug.json
│ └── Assembly-CSharp-Editor-Debug.json
│ └── sqlite3
│ ├── db.lock
│ ├── storage.ide
│ ├── storage.ide-shm
│ └── storage.ide-wal
├── .vsconfig
├── Assets
├── AirConsole.meta
├── AirConsole
│ ├── Documentation for AndroidTV.pdf
│ ├── Documentation for AndroidTV.pdf.meta
│ ├── Documentation_1.7.pdf
│ ├── Documentation_1.7.pdf.meta
│ ├── README.txt
│ ├── README.txt.meta
│ ├── Royaltyfreemusicclips.com Licence.txt
│ ├── Royaltyfreemusicclips.com Licence.txt.meta
│ ├── Third-Party Notices.txt
│ ├── Third-Party Notices.txt.meta
│ ├── Upgrade_Plugin_Version.md
│ ├── Upgrade_Plugin_Version.md.meta
│ ├── examples.meta
│ ├── examples
│ │ ├── basic.meta
│ │ ├── basic
│ │ │ ├── ExampleBasicLogic.cs
│ │ │ ├── ExampleBasicLogic.cs.meta
│ │ │ ├── basic.unity
│ │ │ ├── basic.unity.meta
│ │ │ ├── controller.html
│ │ │ └── controller.html.meta
│ │ ├── game-states.meta
│ │ ├── game-states
│ │ │ ├── GameStatesExampleLogic.cs
│ │ │ ├── GameStatesExampleLogic.cs.meta
│ │ │ ├── controller-game-states.html
│ │ │ ├── controller-game-states.html.meta
│ │ │ ├── game-states.unity
│ │ │ └── game-states.unity.meta
│ │ ├── platformer.meta
│ │ ├── platformer
│ │ │ ├── PlatformerExampleLogic.cs
│ │ │ ├── PlatformerExampleLogic.cs.meta
│ │ │ ├── Player_Platformer.cs
│ │ │ ├── Player_Platformer.cs.meta
│ │ │ ├── platformer-controller.html
│ │ │ ├── platformer-controller.html.meta
│ │ │ ├── platformer.unity
│ │ │ └── platformer.unity.meta
│ │ ├── pong.meta
│ │ ├── pong
│ │ │ ├── ExamplePongLogic.cs
│ │ │ ├── ExamplePongLogic.cs.meta
│ │ │ ├── controller.html
│ │ │ ├── controller.html.meta
│ │ │ ├── pong.unity
│ │ │ ├── pong.unity.meta
│ │ │ ├── scripts.meta
│ │ │ └── scripts
│ │ │ │ ├── Racket.cs
│ │ │ │ └── Racket.cs.meta
│ │ ├── swipe.meta
│ │ ├── swipe
│ │ │ ├── Player_Swipe.cs
│ │ │ ├── Player_Swipe.cs.meta
│ │ │ ├── swipe-controller.html
│ │ │ ├── swipe-controller.html.meta
│ │ │ ├── swipe.unity
│ │ │ └── swipe.unity.meta
│ │ ├── translations.meta
│ │ └── translations
│ │ │ ├── TranslationExampleLogic.cs
│ │ │ ├── TranslationExampleLogic.cs.meta
│ │ │ ├── translations-controller.html
│ │ │ ├── translations-controller.html.meta
│ │ │ ├── translations.unity
│ │ │ └── translations.unity.meta
│ ├── extras.meta
│ ├── extras
│ │ ├── HighScoreHelper.cs
│ │ ├── HighScoreHelper.cs.meta
│ │ ├── controller-template.html
│ │ └── controller-template.html.meta
│ ├── plugins.meta
│ ├── plugins
│ │ ├── Newtonsoft.Json.dll
│ │ ├── Newtonsoft.Json.dll.meta
│ │ ├── websocket-sharp.dll
│ │ └── websocket-sharp.dll.meta
│ ├── resources.meta
│ ├── resources
│ │ ├── AirConsoleBg.png
│ │ ├── AirConsoleBg.png.meta
│ │ ├── AirConsoleLogo.png
│ │ ├── AirConsoleLogo.png.meta
│ │ ├── AirConsoleLogoSmall.png
│ │ ├── AirConsoleLogoSmall.png.meta
│ │ ├── AirConsoleLogoText.png
│ │ ├── AirConsoleLogoText.png.meta
│ │ ├── Art.meta
│ │ ├── Art
│ │ │ ├── Materials.meta
│ │ │ ├── Materials
│ │ │ │ ├── Cube1.mat
│ │ │ │ ├── Cube1.mat.meta
│ │ │ │ ├── Cube2.mat
│ │ │ │ ├── Cube2.mat.meta
│ │ │ │ ├── Green.mat
│ │ │ │ ├── Green.mat.meta
│ │ │ │ ├── ProfilePicturePlane.mat
│ │ │ │ ├── ProfilePicturePlane.mat.meta
│ │ │ │ ├── Sphere 1.mat
│ │ │ │ ├── Sphere 1.mat.meta
│ │ │ │ ├── Sphere.mat
│ │ │ │ ├── Sphere.mat.meta
│ │ │ │ ├── bouncy.physicsMaterial2D
│ │ │ │ ├── bouncy.physicsMaterial2D.meta
│ │ │ │ ├── transparent.mat
│ │ │ │ └── transparent.mat.meta
│ │ │ ├── Meshes.meta
│ │ │ ├── Meshes
│ │ │ │ ├── LogoAirConsole.fbx
│ │ │ │ └── LogoAirConsole.fbx.meta
│ │ │ ├── Sprites.meta
│ │ │ └── Sprites
│ │ │ │ ├── ball.png
│ │ │ │ ├── ball.png.meta
│ │ │ │ ├── player.png
│ │ │ │ └── player.png.meta
│ │ ├── Audio.meta
│ │ ├── Audio
│ │ │ ├── Music.meta
│ │ │ └── Music
│ │ │ │ ├── Happy_1.wav
│ │ │ │ └── Happy_1.wav.meta
│ │ ├── Prefabs.meta
│ │ ├── Prefabs
│ │ │ ├── PlayerCapsule.prefab
│ │ │ └── PlayerCapsule.prefab.meta
│ │ ├── android banner placeholder.jpg
│ │ ├── android banner placeholder.jpg.meta
│ │ ├── androidtv-loadingscreen.png
│ │ └── androidtv-loadingscreen.png.meta
│ ├── scripts.meta
│ └── scripts
│ │ ├── AirConsole.cs
│ │ ├── AirConsole.cs.meta
│ │ ├── DebugLevel.cs
│ │ ├── DebugLevel.cs.meta
│ │ ├── Editor.meta
│ │ ├── Editor
│ │ ├── Extentions.cs
│ │ ├── Extentions.cs.meta
│ │ ├── Inspector.cs
│ │ ├── Inspector.cs.meta
│ │ ├── PlayMode.cs
│ │ ├── PlayMode.cs.meta
│ │ ├── PostBuildProcess.cs
│ │ ├── PostBuildProcess.cs.meta
│ │ ├── PreBuildProcessing.cs
│ │ ├── PreBuildProcessing.cs.meta
│ │ ├── ProjectConfigurationCheck.cs
│ │ ├── ProjectConfigurationCheck.cs.meta
│ │ ├── SettingWindow.cs
│ │ ├── SettingWindow.cs.meta
│ │ ├── WebListener.cs
│ │ └── WebListener.cs.meta
│ │ ├── Settings.cs
│ │ ├── Settings.cs.meta
│ │ ├── WebsocketListener.cs
│ │ └── WebsocketListener.cs.meta
├── Packager.meta
├── Packager
│ ├── Editor.meta
│ └── Editor
│ │ ├── Builder.cs
│ │ ├── Builder.cs.meta
│ │ ├── Packager.cs
│ │ └── Packager.cs.meta
├── Plugins.meta
├── Plugins
│ ├── Android.meta
│ └── Android
│ │ ├── AndroidManifest.xml
│ │ └── AndroidManifest.xml.meta
├── WebGLTemplates.meta
└── WebGLTemplates
│ ├── AirConsole-2020.meta
│ ├── AirConsole-2020
│ ├── TemplateData.meta
│ ├── TemplateData
│ │ ├── loading-screen.png
│ │ └── loading-screen.png.meta
│ ├── airconsole-settings.js
│ ├── airconsole-settings.js.meta
│ ├── airconsole-unity-plugin.js
│ ├── airconsole-unity-plugin.js.meta
│ ├── index.html
│ ├── index.html.meta
│ ├── rate-limiter.js
│ ├── rate-limiter.js.meta
│ ├── thumbnail.png
│ └── thumbnail.png.meta
│ ├── AirConsole-U6.meta
│ ├── AirConsole-U6
│ ├── TemplateData.meta
│ ├── TemplateData
│ │ ├── loading-screen.png
│ │ └── loading-screen.png.meta
│ ├── airconsole-settings.js
│ ├── airconsole-settings.js.meta
│ ├── airconsole-unity-plugin.js
│ ├── airconsole-unity-plugin.js.meta
│ ├── index.html
│ ├── index.html.meta
│ ├── rate-limiter.js
│ ├── rate-limiter.js.meta
│ ├── thumbnail.png
│ └── thumbnail.png.meta
│ ├── AirConsole.meta
│ └── AirConsole
│ ├── TemplateData.meta
│ ├── TemplateData
│ ├── loading-screen.png
│ └── loading-screen.png.meta
│ ├── airconsole-settings.js
│ ├── airconsole-settings.js.meta
│ ├── airconsole-unity-plugin.js
│ ├── airconsole-unity-plugin.js.meta
│ ├── index.html
│ ├── index.html.meta
│ ├── rate-limiter.js
│ ├── rate-limiter.js.meta
│ ├── thumbnail.png
│ └── thumbnail.png.meta
├── Builds
└── airconsole-unity-plugin-v2.5.7.unitypackage
├── CHANGELOG.md
├── LICENSE
├── Packages
├── manifest.json
└── packages-lock.json
├── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── MemorySettings.asset
├── NavMeshAreas.asset
├── NetworkManager.asset
├── PackageManagerSettings.asset
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── SceneTemplateSettings.json
├── TagManager.asset
├── TimeManager.asset
├── UnityConnectSettings.asset
├── VFXManager.asset
├── VersionControlSettings.asset
└── XRSettings.asset
└── README.md
/.github/workflows/activation.yaml:
--------------------------------------------------------------------------------
1 | name: Acquire activation file
2 | on:
3 | workflow_dispatch: {}
4 | jobs:
5 | activation:
6 | name: Request manual activation file 🔑
7 | runs-on: ubuntu-latest
8 | steps:
9 | # Request manual activation file
10 | - name: Request manual activation file
11 | id: getManualLicenseFile
12 | uses: game-ci/unity-request-activation-file@v2
13 | # Upload artifact (Unity_v20XX.X.XXXX.alf)
14 | - name: Expose as artifact
15 | uses: actions/upload-artifact@v2
16 | with:
17 | name: ${{ steps.getManualLicenseFile.outputs.filePath }}
18 | path: ${{ steps.getManualLicenseFile.outputs.filePath }}
--------------------------------------------------------------------------------
/.github/workflows/create-release.yaml:
--------------------------------------------------------------------------------
1 | name: Create Release
2 |
3 | on:
4 | workflow_dispatch:
5 | branches:
6 | - master
7 |
8 | jobs:
9 | build:
10 | runs-on: ubuntu-latest
11 | strategy:
12 | fail-fast: false
13 | max-parallel: 1
14 | matrix:
15 | unityVersion:
16 | - 2019.4.40f1
17 | # - 2020.3.48f1
18 | # - 2021.3.31f1
19 | # - 2022.3.11f1
20 | platform:
21 | - WebGL
22 | # - Android
23 |
24 | steps:
25 | - name: Checkout code
26 | uses: actions/checkout@v3
27 | with:
28 | fetch-depth: 0
29 | lfs: true
30 |
31 | - name: Extract Version from C# File
32 | id: extract_version
33 | run: |
34 | version=$(grep -oP 'public const string VERSION = "\K[^"]+' Assets/AirConsole/scripts/Settings.cs)
35 | echo "Extracted version: $version"
36 | echo "version=$version" >> $GITHUB_ENV
37 |
38 | - name: Validate Version
39 | run: |
40 | if [[ ! "${{ env.version }}" =~ ^[0-9]+\.[0-9]+$ ]]; then
41 | echo "Invalid version format. Must be MAJOR.MINOR"
42 | exit 1
43 | fi
44 |
45 | - name: Check GitHub Releases
46 | id: check_release
47 | run: |
48 | # Fetch releases from GitHub API
49 | releases=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/airconsole/airconsole-unity-plugin/releases")
50 |
51 | # Check if a release with the extracted version exists
52 | exists=$(echo "$releases" | jq -r --arg version "v${{ env.version }}" '.[] | select(.tag_name == $version) | .tag_name')
53 |
54 | if [[ -n "$exists" ]]; then
55 | echo "Release with version v${{ env.version }} already exists."
56 | exit 1
57 | else
58 | echo "No release with version v${{ env.version }} found."
59 | fi
60 |
61 | - uses: actions/cache@v3
62 | with:
63 | path: Library
64 | key: Library-AUP-${{ matrix.platform }}
65 | restore-keys: |
66 | Library-AUP-
67 | Library-
68 |
69 | - name: Test ${{ matrix.platform }} in ${{ matrix.unityVersion }}
70 | uses: game-ci/unity-builder@v3
71 | env:
72 | UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
73 | UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
74 | UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
75 | with:
76 | unityVersion: ${{ matrix.unityVersion }}
77 | targetPlatform: ${{ matrix.platform }}
78 | buildMethod: NDream.Unity.Builder.Build${{ matrix.platform }}
79 | allowDirtyBuild: true
80 |
81 |
82 | # - name: Validate Build
83 | # run: |
84 | # filepath="Builds/${{ matrix.platform }}/release-${{ matrix.unityVersion }}-v${{ env.version }}"
85 | # if [ "${{ matrix.platform }}" == "Android" ]; then
86 | # filepath+=".apk"
87 | # elif [ "${{ matrix.platform }}" == "WebGL" ]; then
88 | # filepath+=".zip"
89 | # fi
90 | # if [ ! -f "$filepath" ]; then
91 | # echo "Build validation failed for ${{ matrix.platform }}"
92 | # exit 1
93 | # fi
94 |
95 | - name: Extract release notes
96 | id: extract-release-notes
97 | uses: ffurrer2/extract-release-notes@v1
98 | with:
99 | changelog_file: CHANGELOG.md
100 |
101 | - name: Log Release Notes
102 | run: echo "Release Notes are ${{ steps.extract-release-notes.outputs.release_notes }}"
103 |
104 | - name: Generate unitypackage release
105 | uses: game-ci/unity-builder@v3
106 | env:
107 | UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
108 | UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
109 | UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
110 | if: matrix.platform == 'WebGL' && matrix.unityVersion == '2019.4.40f1'
111 | with:
112 | unityVersion: ${{ matrix.unityVersion }}
113 | targetPlatform: ${{ matrix.platform }}
114 | buildMethod: NDream.Unity.Builder.Build${{ matrix.platform }}
115 | allowDirtyBuild: true
116 |
117 | # - name: Generate Release unity package
118 | # run: |
119 | # unity -quit -batchmode -executeMethod NDream.Unity.Packager.Export -projectPath . # -outputPath Builds/release-${{ github.event.inputs.version }}.unitypackage
120 |
121 | # Return License
122 | - name: Return license
123 | uses: game-ci/unity-return-license@v2
124 | if: always()
125 |
126 | - name: Validate release package
127 | if: matrix.platform == 'WebGL' && matrix.unityVersion == '2019.4.40f1'
128 | run: |
129 | filepath="Builds/airconsole-unity-plugin-v${{ env.version }}.unitypackage"
130 | if [ ! -f "$filepath" ]; then
131 | echo "Build validation of airconsole-unity-plugin-v${{ env.version }}unitypackage failed"
132 | exit 1
133 | fi
134 |
135 | # - name: Commit and Push
136 | # run: |
137 | # git config user.name "GitHub Actions"
138 | # git config user.email "github-actions@github.com"
139 | # git commit -m "e: Update Release package to v${{ env.version }}"
140 | # git push
141 |
142 | # - name: Create GitHub Release
143 | # uses: softprops/action-gh-release@v1
144 | # if: startsWith(github.ref, 'refs/tags/')
145 | # with:
146 | # files: Builds/release-${{ github.event.inputs.version }}.unitypackage
147 | # body: ${{ steps.extract-release-notes.outputs.release_notes }}
148 | # env:
149 | # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
150 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # =============== #
2 | # Unity generated #
3 | # =============== #
4 | Temp/
5 | /Library/
6 | Logs/
7 | Temp/
8 | UserSettings/
9 | AssetStoreTools/
10 | AssetStoreTools.*
11 |
12 | # ===================================== #
13 | # Visual Studio / MonoDevelop generated #
14 | # ===================================== #
15 | ExportedObj/
16 | obj/
17 | *.svd
18 | *.userprefs
19 | *.csproj
20 | *.pidb
21 | *.suo
22 | *.sln
23 | *.user
24 | *.unityproj
25 | *.booproj
26 |
27 | # ============ #
28 | # OS generated #
29 | # ============ #
30 | .DS_Store
31 | .DS_Store?
32 | ._*
33 | .Spotlight-V100
34 | .Trashes
35 | ehthumbs.db
36 | Thumbs.db
37 |
38 | # ============ #
39 | # IDEA generated #
40 | # ============ #
41 | /.idea
42 |
43 |
44 | # ============ #
45 | # Visual Studio Code generated #
46 | # ============ #
47 | /.vs
48 | .utmp
49 |
--------------------------------------------------------------------------------
/.vs/airconsole-unity-plugin/xs/UserPrefs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/.vs/airconsole-unity-plugin/xs/sqlite3/db.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/.vs/airconsole-unity-plugin/xs/sqlite3/db.lock
--------------------------------------------------------------------------------
/.vs/airconsole-unity-plugin/xs/sqlite3/storage.ide:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/.vs/airconsole-unity-plugin/xs/sqlite3/storage.ide
--------------------------------------------------------------------------------
/.vs/airconsole-unity-plugin/xs/sqlite3/storage.ide-shm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/.vs/airconsole-unity-plugin/xs/sqlite3/storage.ide-shm
--------------------------------------------------------------------------------
/.vs/airconsole-unity-plugin/xs/sqlite3/storage.ide-wal:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/.vs/airconsole-unity-plugin/xs/sqlite3/storage.ide-wal
--------------------------------------------------------------------------------
/.vsconfig:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.0",
3 | "components": [
4 | "Microsoft.VisualStudio.Workload.ManagedGame"
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/Assets/AirConsole.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 07cefb6a9868344dbb6ccfb556f1117e
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/Documentation for AndroidTV.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/Documentation for AndroidTV.pdf
--------------------------------------------------------------------------------
/Assets/AirConsole/Documentation for AndroidTV.pdf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 98c91a57543cf43e9a4f31d3d1f16abc
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/AirConsole/Documentation_1.7.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/Documentation_1.7.pdf
--------------------------------------------------------------------------------
/Assets/AirConsole/Documentation_1.7.pdf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6952db28ad1934cb59d4f40e6f874ac0
3 | timeCreated: 1464704989
4 | licenseType: Pro
5 | DefaultImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/README.txt:
--------------------------------------------------------------------------------
1 | # Info
2 | ------------------------
3 | The AirConsole-Unity-Plugin is a C# wrapper for the AirConsole Javascript API.
4 | AirConsole provides a simple to use Javascript API for game developers to build
5 | their own local multiplayer realtime browser games.
6 | You can find the Javascript API documentation here: http://developers.airconsole.com/#/api
7 |
8 | IMPORTANT: The plugin comes with an embedded webserver / websocket-server for the communication between the AirConsole backend and the Unity-Editor.
9 | You don't need to install any other webserver or services.
10 |
11 | # Documentation
12 | ------------------------
13 | All install instructions and examples are documented in the file "Documentation_1.7.0.pdf" inside this folder.
14 | There are more examples on the website: http://developers.airconsole.com/#/guides
15 |
16 | # Platforms
17 | ------------------------
18 | Since the AirConsole is working with HTML5 and Javascript, you can only make use of this
19 | plugin when you switch your target build to WebGL.
20 |
21 | # Support
22 | ------------------------
23 | If you need support, please visit: http://developers.airconsole.com/#/help
--------------------------------------------------------------------------------
/Assets/AirConsole/README.txt.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d6c3b78438bdca145a9b6283728943bb
3 | timeCreated: 1439513343
4 | licenseType: Store
5 | TextScriptImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/Royaltyfreemusicclips.com Licence.txt:
--------------------------------------------------------------------------------
1 | You can download and use these free music loops and full length music clips in any commercial multimedia project but you cannot:
2 | • re-sell individually or as a collection or as a ringtone
3 | • post on a website for download as we are doing here
4 | • mix into your own music and then redistribute it as your own.
5 |
6 | You may use these music loops in a Youtube video, Flash animation or in any other commercial multimedia presentation including TV and Film.
7 |
8 | In return for the use of these free royalty free music loops we only ask that you please give Partners In Rhyme a link on your website or blog, a credit in your Youtube video, or just a nice email saying "Thanks!".
--------------------------------------------------------------------------------
/Assets/AirConsole/Royaltyfreemusicclips.com Licence.txt.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c81da0fad3643477195ce29f20b2bdaa
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/AirConsole/Third-Party Notices.txt:
--------------------------------------------------------------------------------
1 | Happy_1.wav is under the Royaltyfreemusicclips.com Licence.txt licence.
--------------------------------------------------------------------------------
/Assets/AirConsole/Third-Party Notices.txt.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a5582f43d978843619f1ea79d7f7b451
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/AirConsole/Upgrade_Plugin_Version.md:
--------------------------------------------------------------------------------
1 |
2 | # Upgrade the Unity Plugin to the current version
3 |
4 | ## Upgrading from v2.14- to v2.5.0
5 |
6 | 1. The content of airconsole-unity-plugin.js has changed.
7 | You need to copy the correct version from `WebGLTemplates/AirConsole` for Unity 2019 and below or `WebGLTemplates/AirConsole-2020` for Unity 2020+ to the WebGLTemplate folder you use.
8 |
9 | 2. The content of the index.html / screen.html has changed.
10 | Open your controller's html file as well as the index.html in your WebGL template and search for `` and replace it with ``, otherwise neither Translations nor Player Silencing will work.
11 |
12 | 3. The version of the airconsole api has changed.
13 | Search for a script usage like `` and replace it with ``
14 |
15 | 4. Ensure that obsolete API devices, device_id and server_time_offset are updated:
16 | 1. Replace AirConsole.instance.devices with AirConsole.instance.Devices
17 | 2. Replace AirConsole.instance.device_id with AirConsole.instance.GetDeviceId()
18 | 3. Replace AirConsole.instance.server_time_offset with AirConsole.instance.GetServerTime()
19 |
20 | ## Upgrading from v2.11 to v2.12+
21 |
22 | The location of the Webview has changed in this release.
23 |
24 | When upgrading from v2.11 and before, you need manually remove the old Webview plugin parts:
25 |
26 | - `Assets/AirConsole/plugins/WebViewObject.cs`
27 | - `Assets/AirConsole/plugins/Editor/UnityWebViewPostprocessBuild.cs`
28 | - `Assets/AirConsole/plugins/WebView.bundle`
29 | - `Assets/AirConsole/plugins/WebViewSeparated.bundle`
30 | - `Assets/AirConsole/plugins/Anrdoid/WebViewPlugin.jar`
31 | - `Assets/AirConsole/plugins/iOS/WebView.mm`
32 | - `Assets/AirConsole/plugins/X86_64/WebView.bundle`
33 |
34 | ## Upgrading from older versions to v2.11+
35 |
36 | With v2.11, the `AirConsole.instance.OnMute` event was removed and the AirConsole platform stopped invoking it for older projects in July 2023.
37 | When upgrading you need to update your event handlers for `AirConsole.instance.OnAdShow` and `AirConsole.instance.OnAdComplete` to take care of muting the game.
--------------------------------------------------------------------------------
/Assets/AirConsole/Upgrade_Plugin_Version.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9ab037fe1fbc49358d2aea7a298cf242
3 | timeCreated: 1716970974
--------------------------------------------------------------------------------
/Assets/AirConsole/examples.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4d7ef0dc61a8514469de3fac63d0283c
3 | folderAsset: yes
4 | timeCreated: 1435580098
5 | licenseType: Store
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/basic.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bba32ebfce3c2b84b85c2e975fc45151
3 | folderAsset: yes
4 | timeCreated: 1437829405
5 | licenseType: Store
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/basic/ExampleBasicLogic.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a09fc15aab397884e853f9d135e4f2c8
3 | timeCreated: 1435585733
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/basic/basic.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: be2892f0848650f4fa6714ec6d9100bf
3 | timeCreated: 1435580098
4 | licenseType: Store
5 | DefaultImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/basic/controller.html.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 24d0ea9f52a200b479f21be5710f94ac
3 | timeCreated: 1437829347
4 | licenseType: Store
5 | TextScriptImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/game-states.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 44bbbb8bdaad946e3907352b007a2073
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/game-states/GameStatesExampleLogic.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 158e35e407c154484841b256d8915cc7
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/game-states/controller-game-states.html.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c4a33a98dbad440d98fc8f9e7062d62c
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/game-states/game-states.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0e5f4cea225b44e8290563cbebbb6a5c
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/platformer.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0db6b1d7257f64bf3a9202ed90ae8d92
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/platformer/PlatformerExampleLogic.cs:
--------------------------------------------------------------------------------
1 | #if !DISABLE_AIRCONSOLE
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using UnityEngine;
5 | using NDream.AirConsole;
6 | using Newtonsoft.Json.Linq;
7 |
8 | public class PlatformerExampleLogic : MonoBehaviour {
9 |
10 | public GameObject playerPrefab;
11 |
12 | public Dictionary players = new Dictionary ();
13 |
14 | void Awake () {
15 | AirConsole.instance.onMessage += OnMessage;
16 | AirConsole.instance.onReady += OnReady;
17 | AirConsole.instance.onConnect += OnConnect;
18 | }
19 |
20 | void OnReady(string code){
21 | //Since people might be coming to the game from the AirConsole store once the game is live,
22 | //I have to check for already connected devices here and cannot rely only on the OnConnect event
23 | List connectedDevices = AirConsole.instance.GetControllerDeviceIds();
24 | foreach (int deviceID in connectedDevices) {
25 | AddNewPlayer (deviceID);
26 | }
27 | }
28 |
29 | void OnConnect (int device) {
30 | AddNewPlayer (device);
31 | }
32 |
33 | private void AddNewPlayer(int deviceID) {
34 | if (players.ContainsKey (deviceID)) {
35 | return;
36 | }
37 |
38 | //Instantiate player prefab, store device id + player script in a dictionary
39 | GameObject newPlayer = Instantiate (playerPrefab, transform.position, transform.rotation) as GameObject;
40 | players.Add(deviceID, newPlayer.GetComponent());
41 | }
42 |
43 | void OnMessage (int from, JToken data){
44 | Debug.Log ("message: " + data);
45 |
46 | //When I get a message, I check if it's from any of the devices stored in my device Id dictionary
47 | if (players.ContainsKey (from) && data["action"] != null) {
48 | //I forward the command to the relevant player script, assigned by device ID
49 | players [from].ButtonInput (data["action"].ToString());
50 | }
51 | }
52 |
53 | void OnDestroy () {
54 | if (AirConsole.instance != null) {
55 | AirConsole.instance.onMessage -= OnMessage;
56 | AirConsole.instance.onReady -= OnReady;
57 | AirConsole.instance.onConnect -= OnConnect;
58 | }
59 | }
60 | }
61 | #endif
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/platformer/PlatformerExampleLogic.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ca421917d12344192a0e312fbfdfecf9
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/platformer/Player_Platformer.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class Player_Platformer : MonoBehaviour {
6 |
7 | private Rigidbody rigidBody;
8 |
9 | bool movingLeft;
10 | bool movingRight;
11 |
12 | private float playerSpeed = 0.1f;
13 | private float jumpForce = 350f;
14 |
15 | private bool isInSphere;
16 |
17 | private void Start (){
18 | rigidBody = GetComponent ();
19 | }
20 |
21 | public void ButtonInput (string input){
22 |
23 | switch (input) {
24 | case "right":
25 | movingRight = true;
26 | break;
27 | case "left":
28 | movingLeft = true;
29 | break;
30 | case "right-up":
31 | movingRight = false;
32 | break;
33 | case "left-up":
34 | movingLeft = false;
35 | break;
36 | case "jump":
37 | rigidBody.AddForce (transform.up * jumpForce);
38 | break;
39 | case "interact":
40 | if (isInSphere) {
41 | if (Camera.main.backgroundColor == Color.yellow) {
42 | Camera.main.backgroundColor = Color.blue;
43 | } else {
44 | Camera.main.backgroundColor = Color.yellow;
45 | }
46 | }
47 | break;
48 | }
49 | }
50 |
51 | private void FixedUpdate(){
52 | if (movingLeft && !movingRight) {
53 | rigidBody.MovePosition(rigidBody.position + new Vector3 (-playerSpeed, 0, 0));
54 | } else if (!movingLeft && movingRight) {
55 | rigidBody.MovePosition(rigidBody.position + new Vector3 (playerSpeed, 0, 0));
56 | }
57 | }
58 |
59 | //Track if the player capsule is currently inside the transparent sphere or not
60 | void OnTriggerEnter(Collider trigger){
61 | if (trigger.tag == "PlatformSphere") {
62 | isInSphere = true;
63 | }
64 | }
65 |
66 | void OnTriggerExit(Collider trigger){
67 | if (trigger.tag == "PlatformSphere") {
68 | isInSphere = false;
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/platformer/Player_Platformer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fc5d0864cc8934039b036f722f168be7
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/platformer/platformer-controller.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
61 |
62 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/platformer/platformer-controller.html.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ab5a57d187e074ea3b7285d1c90e187d
3 | timeCreated: 1437829347
4 | licenseType: Store
5 | TextScriptImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/platformer/platformer.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d1c6c76d1e441496eb198de3564ddb56
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/pong.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d992ee17fabc2214c9048fa291018566
3 | folderAsset: yes
4 | timeCreated: 1437829423
5 | licenseType: Store
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/pong/ExamplePongLogic.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dd5f195900113e741b6db1dcbe563753
3 | timeCreated: 1437923339
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/pong/controller.html.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8fc8a37abcbfc124e97a1c0e445d061f
3 | timeCreated: 1437923238
4 | licenseType: Store
5 | TextScriptImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/pong/pong.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 008d7c2791f9bf44cb399bc2ec4b3f84
3 | timeCreated: 1437923230
4 | licenseType: Store
5 | DefaultImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/pong/scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 88a4b7c3c2747b94682d4029d3d9d377
3 | folderAsset: yes
4 | timeCreated: 1437926985
5 | licenseType: Store
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/pong/scripts/Racket.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace NDream.AirConsole.Examples {
4 | public class Racket : MonoBehaviour {
5 |
6 | public ExamplePongLogic logic;
7 |
8 | // Use this for initialization
9 | void Start() { }
10 |
11 | void OnCollisionEnter2D(Collision2D col) {
12 |
13 | if (col.gameObject.GetComponent() != null) {
14 |
15 | float hitPos = (col.transform.position.y - transform.position.y) / (GetComponent().bounds.size.y / 2);
16 | float hitDir = 1f;
17 |
18 | if (col.relativeVelocity.x > 0) {
19 | hitDir = -1f;
20 | }
21 |
22 | Vector2 dir = new Vector2(hitDir, hitPos).normalized;
23 | col.gameObject.GetComponent().velocity = dir * logic.ballSpeed;
24 |
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/pong/scripts/Racket.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e32b9a5d4a7fdf94a9b04655ee10491e
3 | timeCreated: 1437927115
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/swipe.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 03b44b45de6374b4bbf4498bd448c5e5
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/swipe/Player_Swipe.cs:
--------------------------------------------------------------------------------
1 | #if !DISABLE_AIRCONSOLE
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using UnityEngine;
5 | using NDream.AirConsole;
6 | using Newtonsoft.Json.Linq;
7 |
8 | public class Player_Swipe : MonoBehaviour {
9 |
10 | public Material mat1;
11 | public Material mat2;
12 | private bool materialToggle;
13 |
14 | private float distance = 3f;
15 | private float step = 0.2f;
16 |
17 | private Coroutine movementCoroutine;
18 |
19 | void Awake (){
20 | AirConsole.instance.onMessage += OnMessage;
21 | }
22 |
23 | void OnMessage(int from, JToken message){
24 | //We check if the message I receive has an "action" parameter and if it's a swipe
25 | if (message ["action"] != null) {
26 | if (message ["action"].ToString () == "swipe") {
27 | //We log the whole vector to see its values
28 | Debug.Log ("swipe: " + message ["vector"]);
29 |
30 | //if there is already movement going on, we cancel it
31 | if (movementCoroutine != null){
32 | StopCoroutine (movementCoroutine);
33 | }
34 |
35 | //we convert the x and y values we received to float values and make a new direction vector to pass to our movement function
36 | movementCoroutine = StartCoroutine(MoveSphere (new Vector3 ((float)message ["vector"]["x"], -(float)message ["vector"]["y"], 0) ));
37 | }
38 | }
39 | }
40 |
41 | //we make the movement a Coroutine so the sphere moves over time instead of instantly
42 | private IEnumerator MoveSphere (Vector3 direction){
43 |
44 | //calculate the target position
45 | Vector3 targetPosition = transform.position + direction * distance;
46 |
47 | //while the sphere has not reached its target position, move it closer
48 | while (Vector3.Distance(targetPosition, transform.position) > 0.1f){
49 | transform.position = Vector3.MoveTowards (transform.position, targetPosition, step);
50 | yield return new WaitForFixedUpdate ();
51 | }
52 | }
53 |
54 | private void OnDestroy(){
55 | //unregister events
56 | if (AirConsole.instance != null){
57 | AirConsole.instance.onMessage -= OnMessage;
58 | }
59 | }
60 | }
61 | #endif
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/swipe/Player_Swipe.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4e9e02288add1452fb157ba715e7c799
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/swipe/swipe-controller.html.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 84378337121324cb0b715f2e576e0dfc
3 | timeCreated: 1437829347
4 | licenseType: Store
5 | TextScriptImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/swipe/swipe.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a8e8f0a8b5a9741c683915ad339b7dd7
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/translations.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1d4661c190c2b4a93b7067eec99970e3
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/translations/TranslationExampleLogic.cs:
--------------------------------------------------------------------------------
1 | #if !DISABLE_AIRCONSOLE
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using UnityEngine;
5 | using UnityEngine.UI;
6 | using UnityEditor;
7 | using NDream.AirConsole;
8 | using Newtonsoft.Json.Linq;
9 |
10 | public class TranslationExampleLogic : MonoBehaviour {
11 |
12 | public Text translationExample;
13 | public Text[] bulkTranslationExamples;
14 |
15 | void Awake () {
16 | AirConsole.instance.onMessage += OnMessage;
17 | AirConsole.instance.onReady += OnReady;
18 |
19 |
20 | }
21 |
22 | void OnReady(string code) {
23 | //Translations are requested in OnReady so that the translated strings can be stored locally and retrieved quickly afterwards
24 | InitializeTranslations();
25 | }
26 |
27 | void OnMessage (int from, JToken data){
28 | //Debug.Log ("message from device " + from + ", data: " + data);
29 |
30 | }
31 |
32 |
33 | void InitializeTranslations()
34 | {
35 |
36 | //simple translations can be called in bulk by passing an array of Unity Text components, or Text Meshes
37 | AirConsole.instance.TranslateUIElements(bulkTranslationExamples);
38 |
39 | //if a translatable text includes a replaceable value, you have to translate it individually and pass along the values
40 | //in this case, we are translating a greeting message that includes the master controller's nickname
41 | //'welcome_nickname' has an English language value of "Welcome %nickname%, glad you're here!"
42 | translationExample.text = AirConsole.instance.GetTranslation("welcome_nickname", new Dictionary { { "nickname", AirConsole.instance.GetNickname(AirConsole.instance.GetMasterControllerDeviceId()) } });
43 |
44 | /* Note: to really understand how translations work, we recommend creating your own project in the AirConsole Developer Console.
45 | * in this example, we show how to retrieve translations, but you will not be able to view or edit translatable phrases for the
46 | * example project. Documentation: https://developers.airconsole.com/#!/guides/translations
47 | * */
48 | }
49 |
50 |
51 | void OnDestroy () {
52 | if (AirConsole.instance != null) {
53 | AirConsole.instance.onMessage -= OnMessage;
54 | AirConsole.instance.onReady -= OnReady;
55 | }
56 | }
57 | }
58 | #endif
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/translations/TranslationExampleLogic.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 06ed25181fa994159af2bba512317a6b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/translations/translations-controller.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
31 |
32 |
73 |
74 |
75 |
76 | text
77 |
78 | text
79 | text
80 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/translations/translations-controller.html.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d304e4744020045ffa86d603747bbeb9
3 | timeCreated: 1437829347
4 | licenseType: Store
5 | TextScriptImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/examples/translations/translations.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7d28a38601c2f4547b1ecac64cf96761
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/AirConsole/extras.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 578c692f056674c5aad0c3560a2f1b97
3 | folderAsset: yes
4 | timeCreated: 1478250626
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/AirConsole/extras/HighScoreHelper.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using Newtonsoft.Json.Linq;
5 | using System.Linq;
6 |
7 | public class HighScoreHelper : MonoBehaviour {
8 |
9 | ///
10 | /// Converts a list of high scores into rank tables
11 | ///
12 | /// Highscores.
13 | /// The returned object is a dictionary of the following format:
14 | /// {
15 | /// "world": {
16 | /// "title": "World",
17 | /// "highscores": [ ... array of high scores ...]
18 | /// },
19 | /// "country": {
20 | /// "title": "Switzerland",
21 | /// "highscores": [ ... array of high scores ...]
22 | /// },
23 | /// ...
24 | /// }
25 | ///
26 | public static JToken ConvertHighScoresToTables(JToken highscores) {
27 |
28 | JObject tables = new JObject ();
29 |
30 | for (int i = 0; i < highscores.Count(); ++i) {
31 |
32 | JObject highscore = (JObject)highscores[i];
33 | foreach (JProperty rankType in highscore["ranks"]){
34 |
35 | JObject rankTable;
36 |
37 | if (tables[rankType.Name] == null){
38 |
39 | rankTable = new JObject();
40 |
41 | if (rankType.Name == "friends") {
42 | rankTable.Add("title", "Friends");
43 | } else if (rankType.Name == "world") {
44 | rankTable.Add("title", "World");
45 | } else if (rankType.Name == "country" || rankType.Name == "region" || rankType.Name == "city") {
46 | rankTable.Add("title", highscore["location_" + rankType.Name + "_name"]);
47 | }
48 |
49 | tables[rankType.Name] = rankTable;
50 | } else {
51 | rankTable = (JObject)tables[rankType.Name];
52 | }
53 |
54 | if (rankTable["highscores"] == null){
55 | rankTable.Add("highscores", new JArray());
56 | }
57 |
58 | ((JArray)rankTable["highscores"]).Add(highscore);
59 | }
60 | }
61 |
62 | return tables;
63 |
64 | }
65 |
66 | ///
67 | /// Given a list of high scores, returns the best high scores for ghost mode.
68 | /// Preference in order:
69 | /// - First, Ghosts with similar scores
70 | /// - Then, sort by connected players, friends, city, region, country, world
71 | /// If multiple Ghosts have the same preference score, random ones are chosen
72 | ///
73 | /// Highscores.
74 | /// How many ghosts you would like to get.
75 | /// Optimal minimum score factor a ghost needs to have compared to the best score of a connected player. Default is 0.75f.
76 | /// Optimal maximum score factor a ghost needs to have compared to the best score of a connected player. Default is 1.5f.
77 | /// List of highscore entries that are best suited for ghost mode.
78 | public static JToken SelectBestGhosts(JToken highscores, int count, float minScoreFactor = 0.75f, float maxScoreFactor = 1.5f){
79 | float myScore = -1;
80 | List candidates = new List();
81 |
82 | for (int i = 0; i < highscores.Count(); ++i) {
83 | JObject highscore = (JObject)highscores [i];
84 | if (highscore["relationship"].ToString() == "requested"){
85 | if (myScore == -1 || myScore < (float)highscore["score"]) {
86 | myScore = (float)highscore["score"];
87 | }
88 | }
89 | candidates.Add (highscore);
90 | }
91 |
92 | JObject preference = new JObject ();
93 | preference.Add("world", 1);
94 | preference.Add("country", 2);
95 | preference.Add("region", 3);
96 | preference.Add("city", 4);
97 | preference.Add("friends", 5);
98 | preference.Add("similar_score", 10);
99 | preference.Add("requested", 20);
100 |
101 | int randomUID = Mathf.FloorToInt(Random.value * 65536);
102 | int randomUIDChar = Mathf.FloorToInt(Random.value * 32);
103 |
104 | JArray result = new JArray ();
105 | foreach (JToken candidate in candidates.OrderBy (element => SortScore (element, preference, myScore, minScoreFactor, maxScoreFactor, randomUID, randomUIDChar))) {
106 | result.Add(candidate);
107 | if (result.Count() == count){
108 | break;
109 | }
110 | }
111 |
112 | return result;
113 |
114 | }
115 |
116 | private static float SortScore(JToken highscore, JObject preference, float myScore, float minScoreFactor, float maxScoreFactor, int randomUID, int randomUIDChar){
117 | float sortScore = 0;
118 | foreach (JProperty rank in highscore["ranks"]) {
119 | sortScore = Mathf.Max (sortScore, (float)preference[rank.Name]);
120 | }
121 |
122 | if (myScore != -1) {
123 |
124 | if ((float)highscore ["score"] > myScore * minScoreFactor && (float)highscore ["score"] < myScore * maxScoreFactor) {
125 | sortScore += (int)preference ["similar_score"];
126 | }
127 |
128 | if (highscore ["relationship"].ToString () == "requested") {
129 | sortScore += (int)preference ["requested"];
130 | }
131 |
132 | string uid = highscore ["uids"] [randomUID % highscore["uids"].Count()].ToString();
133 | sortScore += 1.0f / (int)uid[randomUIDChar % uid.Length];
134 |
135 | }
136 | return -sortScore;
137 | }
138 | }
139 |
--------------------------------------------------------------------------------
/Assets/AirConsole/extras/HighScoreHelper.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 627c37fd2703a4e51bb7c6f17da8d20a
3 | timeCreated: 1478250614
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/extras/controller-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Assets/AirConsole/extras/controller-template.html.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 898f8131596954b47a4dd4ba0110edca
3 | timeCreated: 1437829347
4 | licenseType: Store
5 | TextScriptImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/plugins.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ac86ea184f38f1d4ca6692142f7ae865
3 | folderAsset: yes
4 | timeCreated: 1435571321
5 | licenseType: Store
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/AirConsole/plugins/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/plugins/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/Assets/AirConsole/plugins/Newtonsoft.Json.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 66183dd759e7e4110bf343dffda198a0
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 0
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | validateReferences: 1
13 | platformData:
14 | - first:
15 | Any:
16 | second:
17 | enabled: 1
18 | settings: {}
19 | - first:
20 | Editor: Editor
21 | second:
22 | enabled: 0
23 | settings:
24 | DefaultValueInitialized: true
25 | - first:
26 | Windows Store Apps: WindowsStoreApps
27 | second:
28 | enabled: 0
29 | settings:
30 | CPU: AnyCPU
31 | userData:
32 | assetBundleName:
33 | assetBundleVariant:
34 |
--------------------------------------------------------------------------------
/Assets/AirConsole/plugins/websocket-sharp.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/plugins/websocket-sharp.dll
--------------------------------------------------------------------------------
/Assets/AirConsole/plugins/websocket-sharp.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 72843e8dd1ed8d54c8dbfa4df310a5dd
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 0
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | validateReferences: 1
13 | platformData:
14 | - first:
15 | : Linux
16 | second:
17 | enabled: 1
18 | settings:
19 | CPU: x86
20 | - first:
21 | : LinuxUniversal
22 | second:
23 | enabled: 1
24 | settings:
25 | CPU: AnyCPU
26 | - first:
27 | : OSXIntel
28 | second:
29 | enabled: 1
30 | settings:
31 | CPU: AnyCPU
32 | - first:
33 | : OSXIntel64
34 | second:
35 | enabled: 1
36 | settings:
37 | CPU: AnyCPU
38 | - first:
39 | : SamsungTV
40 | second:
41 | enabled: 0
42 | settings:
43 | STV_MODEL: STANDARD_13
44 | - first:
45 | : WP8
46 | second:
47 | enabled: 0
48 | settings:
49 | CPU: AnyCPU
50 | DontProcess: False
51 | PlaceholderPath:
52 | - first:
53 | Android: Android
54 | second:
55 | enabled: 1
56 | settings:
57 | CPU: AnyCPU
58 | - first:
59 | Any:
60 | second:
61 | enabled: 0
62 | settings: {}
63 | - first:
64 | Editor: Editor
65 | second:
66 | enabled: 1
67 | settings:
68 | CPU: AnyCPU
69 | DefaultValueInitialized: true
70 | OS: AnyOS
71 | - first:
72 | Facebook: WebGL
73 | second:
74 | enabled: 1
75 | settings: {}
76 | - first:
77 | Facebook: Win
78 | second:
79 | enabled: 1
80 | settings:
81 | CPU: AnyCPU
82 | - first:
83 | Facebook: Win64
84 | second:
85 | enabled: 1
86 | settings:
87 | CPU: AnyCPU
88 | - first:
89 | Standalone: Linux64
90 | second:
91 | enabled: 1
92 | settings:
93 | CPU: AnyCPU
94 | - first:
95 | Standalone: OSXUniversal
96 | second:
97 | enabled: 1
98 | settings:
99 | CPU: AnyCPU
100 | - first:
101 | Standalone: Win
102 | second:
103 | enabled: 1
104 | settings:
105 | CPU: AnyCPU
106 | - first:
107 | Standalone: Win64
108 | second:
109 | enabled: 1
110 | settings:
111 | CPU: AnyCPU
112 | - first:
113 | WebGL: WebGL
114 | second:
115 | enabled: 1
116 | settings: {}
117 | - first:
118 | Windows Store Apps: WindowsStoreApps
119 | second:
120 | enabled: 0
121 | settings:
122 | CPU: AnyCPU
123 | DontProcess: False
124 | PlaceholderPath:
125 | SDK: AnySDK
126 | ScriptingBackend: AnyScriptingBackend
127 | - first:
128 | iPhone: iOS
129 | second:
130 | enabled: 0
131 | settings:
132 | CompileFlags:
133 | FrameworkDependencies:
134 | userData:
135 | assetBundleName:
136 | assetBundleVariant:
137 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c6652518690edc74ba1e583773c8def2
3 | folderAsset: yes
4 | timeCreated: 1435670968
5 | licenseType: Store
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/AirConsoleBg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/resources/AirConsoleBg.png
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/AirConsoleBg.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f33ccac877cf62b4c80246ed480787f1
3 | timeCreated: 1437760409
4 | licenseType: Store
5 | TextureImporter:
6 | fileIDToRecycleName: {}
7 | serializedVersion: 2
8 | mipmaps:
9 | mipMapMode: 0
10 | enableMipMap: 0
11 | linearTexture: 1
12 | correctGamma: 0
13 | fadeOut: 0
14 | borderMipMap: 0
15 | mipMapFadeDistanceStart: 1
16 | mipMapFadeDistanceEnd: 3
17 | bumpmap:
18 | convertToNormalMap: 0
19 | externalNormalMap: 0
20 | heightScale: .25
21 | normalMapFilter: 0
22 | isReadable: 0
23 | grayScaleToAlpha: 0
24 | generateCubemap: 0
25 | cubemapConvolution: 0
26 | cubemapConvolutionSteps: 8
27 | cubemapConvolutionExponent: 1.5
28 | seamlessCubemap: 0
29 | textureFormat: -3
30 | maxTextureSize: 32
31 | textureSettings:
32 | filterMode: -1
33 | aniso: 1
34 | mipBias: -1
35 | wrapMode: 1
36 | nPOTScale: 0
37 | lightmap: 0
38 | rGBM: 0
39 | compressionQuality: 50
40 | spriteMode: 0
41 | spriteExtrude: 1
42 | spriteMeshType: 1
43 | alignment: 0
44 | spritePivot: {x: .5, y: .5}
45 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
46 | spritePixelsToUnits: 100
47 | alphaIsTransparency: 1
48 | textureType: 2
49 | buildTargetSettings: []
50 | spriteSheet:
51 | sprites: []
52 | spritePackingTag:
53 | userData:
54 | assetBundleName:
55 | assetBundleVariant:
56 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/AirConsoleLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/resources/AirConsoleLogo.png
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/AirConsoleLogo.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7880c2c6c2772ca4dbf267146591adf5
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 11
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | vTOnly: 0
27 | grayScaleToAlpha: 0
28 | generateCubemap: 6
29 | cubemapConvolution: 0
30 | seamlessCubemap: 0
31 | textureFormat: 1
32 | maxTextureSize: 2048
33 | textureSettings:
34 | serializedVersion: 2
35 | filterMode: -1
36 | aniso: -1
37 | mipBias: -100
38 | wrapU: 1
39 | wrapV: 1
40 | wrapW: 1
41 | nPOTScale: 0
42 | lightmap: 0
43 | compressionQuality: 50
44 | spriteMode: 1
45 | spriteExtrude: 1
46 | spriteMeshType: 1
47 | alignment: 0
48 | spritePivot: {x: 0.5, y: 0.5}
49 | spritePixelsToUnits: 100
50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
51 | spriteGenerateFallbackPhysicsShape: 1
52 | alphaUsage: 1
53 | alphaIsTransparency: 1
54 | spriteTessellationDetail: -1
55 | textureType: 8
56 | textureShape: 1
57 | singleChannelComponent: 0
58 | maxTextureSizeSet: 0
59 | compressionQualitySet: 0
60 | textureFormatSet: 0
61 | ignorePngGamma: 0
62 | applyGammaDecoding: 0
63 | platformSettings:
64 | - serializedVersion: 3
65 | buildTarget: DefaultTexturePlatform
66 | maxTextureSize: 2048
67 | resizeAlgorithm: 0
68 | textureFormat: -1
69 | textureCompression: 1
70 | compressionQuality: 50
71 | crunchedCompression: 0
72 | allowsAlphaSplitting: 0
73 | overridden: 0
74 | androidETC2FallbackOverride: 0
75 | forceMaximumCompressionQuality_BC6H_BC7: 0
76 | spriteSheet:
77 | serializedVersion: 2
78 | sprites: []
79 | outline: []
80 | physicsShape: []
81 | bones: []
82 | spriteID: 5e97eb03825dee720800000000000000
83 | internalID: 0
84 | vertices: []
85 | indices:
86 | edges: []
87 | weights: []
88 | secondaryTextures: []
89 | spritePackingTag:
90 | pSDRemoveMatte: 0
91 | pSDShowRemoveMatteOption: 0
92 | userData:
93 | assetBundleName:
94 | assetBundleVariant:
95 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/AirConsoleLogoSmall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/resources/AirConsoleLogoSmall.png
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/AirConsoleLogoSmall.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 24cce4c13e2531f48baeac00c3652527
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 11
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | vTOnly: 0
27 | grayScaleToAlpha: 0
28 | generateCubemap: 6
29 | cubemapConvolution: 0
30 | seamlessCubemap: 0
31 | textureFormat: 1
32 | maxTextureSize: 2048
33 | textureSettings:
34 | serializedVersion: 2
35 | filterMode: -1
36 | aniso: -1
37 | mipBias: -100
38 | wrapU: 1
39 | wrapV: 1
40 | wrapW: 1
41 | nPOTScale: 0
42 | lightmap: 0
43 | compressionQuality: 50
44 | spriteMode: 1
45 | spriteExtrude: 1
46 | spriteMeshType: 1
47 | alignment: 0
48 | spritePivot: {x: 0.5, y: 0.5}
49 | spritePixelsToUnits: 100
50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
51 | spriteGenerateFallbackPhysicsShape: 1
52 | alphaUsage: 1
53 | alphaIsTransparency: 1
54 | spriteTessellationDetail: -1
55 | textureType: 8
56 | textureShape: 1
57 | singleChannelComponent: 0
58 | maxTextureSizeSet: 0
59 | compressionQualitySet: 0
60 | textureFormatSet: 0
61 | ignorePngGamma: 0
62 | applyGammaDecoding: 0
63 | platformSettings:
64 | - serializedVersion: 3
65 | buildTarget: DefaultTexturePlatform
66 | maxTextureSize: 2048
67 | resizeAlgorithm: 0
68 | textureFormat: -1
69 | textureCompression: 1
70 | compressionQuality: 50
71 | crunchedCompression: 0
72 | allowsAlphaSplitting: 0
73 | overridden: 0
74 | androidETC2FallbackOverride: 0
75 | forceMaximumCompressionQuality_BC6H_BC7: 0
76 | spriteSheet:
77 | serializedVersion: 2
78 | sprites: []
79 | outline: []
80 | physicsShape: []
81 | bones: []
82 | spriteID: 5e97eb03825dee720800000000000000
83 | internalID: 0
84 | vertices: []
85 | indices:
86 | edges: []
87 | weights: []
88 | secondaryTextures: []
89 | spritePackingTag:
90 | pSDRemoveMatte: 0
91 | pSDShowRemoveMatteOption: 0
92 | userData:
93 | assetBundleName:
94 | assetBundleVariant:
95 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/AirConsoleLogoText.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/resources/AirConsoleLogoText.png
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/AirConsoleLogoText.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fa96579cda0638a4d823c2f246c366b9
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 11
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | vTOnly: 0
27 | grayScaleToAlpha: 0
28 | generateCubemap: 6
29 | cubemapConvolution: 0
30 | seamlessCubemap: 0
31 | textureFormat: 1
32 | maxTextureSize: 2048
33 | textureSettings:
34 | serializedVersion: 2
35 | filterMode: -1
36 | aniso: -1
37 | mipBias: -100
38 | wrapU: 1
39 | wrapV: 1
40 | wrapW: 1
41 | nPOTScale: 0
42 | lightmap: 0
43 | compressionQuality: 50
44 | spriteMode: 1
45 | spriteExtrude: 1
46 | spriteMeshType: 1
47 | alignment: 0
48 | spritePivot: {x: 0.5, y: 0.5}
49 | spritePixelsToUnits: 100
50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
51 | spriteGenerateFallbackPhysicsShape: 1
52 | alphaUsage: 1
53 | alphaIsTransparency: 1
54 | spriteTessellationDetail: -1
55 | textureType: 8
56 | textureShape: 1
57 | singleChannelComponent: 0
58 | maxTextureSizeSet: 0
59 | compressionQualitySet: 0
60 | textureFormatSet: 0
61 | ignorePngGamma: 0
62 | applyGammaDecoding: 0
63 | platformSettings:
64 | - serializedVersion: 3
65 | buildTarget: DefaultTexturePlatform
66 | maxTextureSize: 2048
67 | resizeAlgorithm: 0
68 | textureFormat: -1
69 | textureCompression: 1
70 | compressionQuality: 50
71 | crunchedCompression: 0
72 | allowsAlphaSplitting: 0
73 | overridden: 0
74 | androidETC2FallbackOverride: 0
75 | forceMaximumCompressionQuality_BC6H_BC7: 0
76 | spriteSheet:
77 | serializedVersion: 2
78 | sprites: []
79 | outline: []
80 | physicsShape: []
81 | bones: []
82 | spriteID: 5e97eb03825dee720800000000000000
83 | internalID: 0
84 | vertices: []
85 | indices:
86 | edges: []
87 | weights: []
88 | secondaryTextures: []
89 | spritePackingTag:
90 | pSDRemoveMatte: 0
91 | pSDShowRemoveMatteOption: 0
92 | userData:
93 | assetBundleName:
94 | assetBundleVariant:
95 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3440620e5ebca4ef5991022029adaaa8
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8dd48c7077044486e8b0e659d7bdfe0a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/Cube1.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: Cube1
10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
11 | m_ShaderKeywords:
12 | m_LightmapFlags: 4
13 | m_EnableInstancingVariants: 0
14 | m_DoubleSidedGI: 0
15 | m_CustomRenderQueue: -1
16 | stringTagMap: {}
17 | disabledShaderPasses: []
18 | m_SavedProperties:
19 | serializedVersion: 3
20 | m_TexEnvs:
21 | - _BumpMap:
22 | m_Texture: {fileID: 0}
23 | m_Scale: {x: 1, y: 1}
24 | m_Offset: {x: 0, y: 0}
25 | - _DetailAlbedoMap:
26 | m_Texture: {fileID: 0}
27 | m_Scale: {x: 1, y: 1}
28 | m_Offset: {x: 0, y: 0}
29 | - _DetailMask:
30 | m_Texture: {fileID: 0}
31 | m_Scale: {x: 1, y: 1}
32 | m_Offset: {x: 0, y: 0}
33 | - _DetailNormalMap:
34 | m_Texture: {fileID: 0}
35 | m_Scale: {x: 1, y: 1}
36 | m_Offset: {x: 0, y: 0}
37 | - _EmissionMap:
38 | m_Texture: {fileID: 0}
39 | m_Scale: {x: 1, y: 1}
40 | m_Offset: {x: 0, y: 0}
41 | - _MainTex:
42 | m_Texture: {fileID: 0}
43 | m_Scale: {x: 1, y: 1}
44 | m_Offset: {x: 0, y: 0}
45 | - _MetallicGlossMap:
46 | m_Texture: {fileID: 0}
47 | m_Scale: {x: 1, y: 1}
48 | m_Offset: {x: 0, y: 0}
49 | - _OcclusionMap:
50 | m_Texture: {fileID: 0}
51 | m_Scale: {x: 1, y: 1}
52 | m_Offset: {x: 0, y: 0}
53 | - _ParallaxMap:
54 | m_Texture: {fileID: 0}
55 | m_Scale: {x: 1, y: 1}
56 | m_Offset: {x: 0, y: 0}
57 | m_Floats:
58 | - _BumpScale: 1
59 | - _Cutoff: 0.5
60 | - _DetailNormalMapScale: 1
61 | - _DstBlend: 0
62 | - _GlossMapScale: 1
63 | - _Glossiness: 0.5
64 | - _GlossyReflections: 1
65 | - _Metallic: 0
66 | - _Mode: 0
67 | - _OcclusionStrength: 1
68 | - _Parallax: 0.02
69 | - _SmoothnessTextureChannel: 0
70 | - _SpecularHighlights: 1
71 | - _SrcBlend: 1
72 | - _UVSec: 0
73 | - _ZWrite: 1
74 | m_Colors:
75 | - _Color: {r: 0.53333336, g: 0, b: 0.08627451, a: 1}
76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
77 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/Cube1.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ad18e7b002c5a46d18e5450b8b45bbf1
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/Cube2.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: Cube2
10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
11 | m_ShaderKeywords:
12 | m_LightmapFlags: 4
13 | m_EnableInstancingVariants: 0
14 | m_DoubleSidedGI: 0
15 | m_CustomRenderQueue: -1
16 | stringTagMap: {}
17 | disabledShaderPasses: []
18 | m_SavedProperties:
19 | serializedVersion: 3
20 | m_TexEnvs:
21 | - _BumpMap:
22 | m_Texture: {fileID: 0}
23 | m_Scale: {x: 1, y: 1}
24 | m_Offset: {x: 0, y: 0}
25 | - _DetailAlbedoMap:
26 | m_Texture: {fileID: 0}
27 | m_Scale: {x: 1, y: 1}
28 | m_Offset: {x: 0, y: 0}
29 | - _DetailMask:
30 | m_Texture: {fileID: 0}
31 | m_Scale: {x: 1, y: 1}
32 | m_Offset: {x: 0, y: 0}
33 | - _DetailNormalMap:
34 | m_Texture: {fileID: 0}
35 | m_Scale: {x: 1, y: 1}
36 | m_Offset: {x: 0, y: 0}
37 | - _EmissionMap:
38 | m_Texture: {fileID: 0}
39 | m_Scale: {x: 1, y: 1}
40 | m_Offset: {x: 0, y: 0}
41 | - _MainTex:
42 | m_Texture: {fileID: 0}
43 | m_Scale: {x: 1, y: 1}
44 | m_Offset: {x: 0, y: 0}
45 | - _MetallicGlossMap:
46 | m_Texture: {fileID: 0}
47 | m_Scale: {x: 1, y: 1}
48 | m_Offset: {x: 0, y: 0}
49 | - _OcclusionMap:
50 | m_Texture: {fileID: 0}
51 | m_Scale: {x: 1, y: 1}
52 | m_Offset: {x: 0, y: 0}
53 | - _ParallaxMap:
54 | m_Texture: {fileID: 0}
55 | m_Scale: {x: 1, y: 1}
56 | m_Offset: {x: 0, y: 0}
57 | m_Floats:
58 | - _BumpScale: 1
59 | - _Cutoff: 0.5
60 | - _DetailNormalMapScale: 1
61 | - _DstBlend: 0
62 | - _GlossMapScale: 1
63 | - _Glossiness: 0.5
64 | - _GlossyReflections: 1
65 | - _Metallic: 0
66 | - _Mode: 0
67 | - _OcclusionStrength: 1
68 | - _Parallax: 0.02
69 | - _SmoothnessTextureChannel: 0
70 | - _SpecularHighlights: 1
71 | - _SrcBlend: 1
72 | - _UVSec: 0
73 | - _ZWrite: 1
74 | m_Colors:
75 | - _Color: {r: 1, g: 0.7607843, b: 0, a: 1}
76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
77 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/Cube2.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 580ab468a3a9042538a434a167f03273
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/Green.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInstance: {fileID: 0}
9 | m_PrefabAsset: {fileID: 0}
10 | m_Name: Green
11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
12 | m_ShaderKeywords: _EMISSION
13 | m_LightmapFlags: 1
14 | m_EnableInstancingVariants: 0
15 | m_DoubleSidedGI: 0
16 | m_CustomRenderQueue: -1
17 | stringTagMap: {}
18 | disabledShaderPasses: []
19 | m_SavedProperties:
20 | serializedVersion: 3
21 | m_TexEnvs:
22 | - _BumpMap:
23 | m_Texture: {fileID: 0}
24 | m_Scale: {x: 1, y: 1}
25 | m_Offset: {x: 0, y: 0}
26 | - _DetailAlbedoMap:
27 | m_Texture: {fileID: 0}
28 | m_Scale: {x: 1, y: 1}
29 | m_Offset: {x: 0, y: 0}
30 | - _DetailMask:
31 | m_Texture: {fileID: 0}
32 | m_Scale: {x: 1, y: 1}
33 | m_Offset: {x: 0, y: 0}
34 | - _DetailNormalMap:
35 | m_Texture: {fileID: 0}
36 | m_Scale: {x: 1, y: 1}
37 | m_Offset: {x: 0, y: 0}
38 | - _EmissionMap:
39 | m_Texture: {fileID: 0}
40 | m_Scale: {x: 1, y: 1}
41 | m_Offset: {x: 0, y: 0}
42 | - _MainTex:
43 | m_Texture: {fileID: 0}
44 | m_Scale: {x: 1, y: 1}
45 | m_Offset: {x: 0, y: 0}
46 | - _MetallicGlossMap:
47 | m_Texture: {fileID: 0}
48 | m_Scale: {x: 1, y: 1}
49 | m_Offset: {x: 0, y: 0}
50 | - _OcclusionMap:
51 | m_Texture: {fileID: 0}
52 | m_Scale: {x: 1, y: 1}
53 | m_Offset: {x: 0, y: 0}
54 | - _ParallaxMap:
55 | m_Texture: {fileID: 0}
56 | m_Scale: {x: 1, y: 1}
57 | m_Offset: {x: 0, y: 0}
58 | m_Floats:
59 | - _BumpScale: 1
60 | - _Cutoff: 0.5
61 | - _DetailNormalMapScale: 1
62 | - _DstBlend: 0
63 | - _GlossMapScale: 1
64 | - _Glossiness: 0.269
65 | - _GlossyReflections: 1
66 | - _Metallic: 0
67 | - _Mode: 0
68 | - _OcclusionStrength: 1
69 | - _Parallax: 0.02
70 | - _SmoothnessTextureChannel: 0
71 | - _SpecularHighlights: 1
72 | - _SrcBlend: 1
73 | - _UVSec: 0
74 | - _ZWrite: 1
75 | m_Colors:
76 | - _Color: {r: 0.41788512, g: 0.8549927, b: 0, a: 1}
77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
78 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/Green.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b7e27e5d067ad4a33938b2d5e46e278b
3 | timeCreated: 1447763042
4 | licenseType: Store
5 | NativeFormatImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/ProfilePicturePlane.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_PrefabParentObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: ProfilePicturePlane
10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
11 | m_ShaderKeywords: _ALPHABLEND_ON
12 | m_LightmapFlags: 5
13 | m_CustomRenderQueue: 3000
14 | stringTagMap:
15 | RenderType: Transparent
16 | m_SavedProperties:
17 | serializedVersion: 2
18 | m_TexEnvs:
19 | data:
20 | first:
21 | name: _MainTex
22 | second:
23 | m_Texture: {fileID: 0}
24 | m_Scale: {x: 1, y: 1}
25 | m_Offset: {x: 0, y: 0}
26 | data:
27 | first:
28 | name: _BumpMap
29 | second:
30 | m_Texture: {fileID: 0}
31 | m_Scale: {x: 1, y: 1}
32 | m_Offset: {x: 0, y: 0}
33 | data:
34 | first:
35 | name: _DetailNormalMap
36 | second:
37 | m_Texture: {fileID: 0}
38 | m_Scale: {x: 1, y: 1}
39 | m_Offset: {x: 0, y: 0}
40 | data:
41 | first:
42 | name: _ParallaxMap
43 | second:
44 | m_Texture: {fileID: 0}
45 | m_Scale: {x: 1, y: 1}
46 | m_Offset: {x: 0, y: 0}
47 | data:
48 | first:
49 | name: _OcclusionMap
50 | second:
51 | m_Texture: {fileID: 0}
52 | m_Scale: {x: 1, y: 1}
53 | m_Offset: {x: 0, y: 0}
54 | data:
55 | first:
56 | name: _EmissionMap
57 | second:
58 | m_Texture: {fileID: 0}
59 | m_Scale: {x: 1, y: 1}
60 | m_Offset: {x: 0, y: 0}
61 | data:
62 | first:
63 | name: _DetailMask
64 | second:
65 | m_Texture: {fileID: 0}
66 | m_Scale: {x: 1, y: 1}
67 | m_Offset: {x: 0, y: 0}
68 | data:
69 | first:
70 | name: _DetailAlbedoMap
71 | second:
72 | m_Texture: {fileID: 0}
73 | m_Scale: {x: 1, y: 1}
74 | m_Offset: {x: 0, y: 0}
75 | data:
76 | first:
77 | name: _MetallicGlossMap
78 | second:
79 | m_Texture: {fileID: 0}
80 | m_Scale: {x: 1, y: 1}
81 | m_Offset: {x: 0, y: 0}
82 | m_Floats:
83 | data:
84 | first:
85 | name: _SrcBlend
86 | second: 5
87 | data:
88 | first:
89 | name: _DstBlend
90 | second: 10
91 | data:
92 | first:
93 | name: _Cutoff
94 | second: 0
95 | data:
96 | first:
97 | name: _Parallax
98 | second: 0.02
99 | data:
100 | first:
101 | name: _ZWrite
102 | second: 0
103 | data:
104 | first:
105 | name: _Glossiness
106 | second: 0
107 | data:
108 | first:
109 | name: _BumpScale
110 | second: 1
111 | data:
112 | first:
113 | name: _OcclusionStrength
114 | second: 1
115 | data:
116 | first:
117 | name: _DetailNormalMapScale
118 | second: 1
119 | data:
120 | first:
121 | name: _UVSec
122 | second: 0
123 | data:
124 | first:
125 | name: _Mode
126 | second: 2
127 | data:
128 | first:
129 | name: _Metallic
130 | second: 0
131 | m_Colors:
132 | data:
133 | first:
134 | name: _EmissionColor
135 | second: {r: 0, g: 0, b: 0, a: 1}
136 | data:
137 | first:
138 | name: _Color
139 | second: {r: 0, g: 0, b: 0, a: 0}
140 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/ProfilePicturePlane.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 50229279e85ab4dcea2b928155d53b71
3 | timeCreated: 1449823528
4 | licenseType: Store
5 | NativeFormatImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/Sphere 1.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: Sphere 1
10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
11 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
12 | m_LightmapFlags: 4
13 | m_EnableInstancingVariants: 0
14 | m_DoubleSidedGI: 0
15 | m_CustomRenderQueue: -1
16 | stringTagMap: {}
17 | disabledShaderPasses: []
18 | m_SavedProperties:
19 | serializedVersion: 3
20 | m_TexEnvs:
21 | - _BumpMap:
22 | m_Texture: {fileID: 0}
23 | m_Scale: {x: 1, y: 1}
24 | m_Offset: {x: 0, y: 0}
25 | - _DetailAlbedoMap:
26 | m_Texture: {fileID: 0}
27 | m_Scale: {x: 1, y: 1}
28 | m_Offset: {x: 0, y: 0}
29 | - _DetailMask:
30 | m_Texture: {fileID: 0}
31 | m_Scale: {x: 1, y: 1}
32 | m_Offset: {x: 0, y: 0}
33 | - _DetailNormalMap:
34 | m_Texture: {fileID: 0}
35 | m_Scale: {x: 1, y: 1}
36 | m_Offset: {x: 0, y: 0}
37 | - _EmissionMap:
38 | m_Texture: {fileID: 0}
39 | m_Scale: {x: 1, y: 1}
40 | m_Offset: {x: 0, y: 0}
41 | - _MainTex:
42 | m_Texture: {fileID: 0}
43 | m_Scale: {x: 1, y: 1}
44 | m_Offset: {x: 0, y: 0}
45 | - _MetallicGlossMap:
46 | m_Texture: {fileID: 0}
47 | m_Scale: {x: 1, y: 1}
48 | m_Offset: {x: 0, y: 0}
49 | - _OcclusionMap:
50 | m_Texture: {fileID: 0}
51 | m_Scale: {x: 1, y: 1}
52 | m_Offset: {x: 0, y: 0}
53 | - _ParallaxMap:
54 | m_Texture: {fileID: 0}
55 | m_Scale: {x: 1, y: 1}
56 | m_Offset: {x: 0, y: 0}
57 | m_Floats:
58 | - _BumpScale: 1
59 | - _Cutoff: 0.5
60 | - _DetailNormalMapScale: 1
61 | - _DstBlend: 0
62 | - _GlossMapScale: 1
63 | - _Glossiness: 0
64 | - _GlossyReflections: 1
65 | - _Metallic: 0
66 | - _Mode: 0
67 | - _OcclusionStrength: 1
68 | - _Parallax: 0.02
69 | - _SmoothnessTextureChannel: 1
70 | - _SpecularHighlights: 1
71 | - _SrcBlend: 1
72 | - _UVSec: 0
73 | - _ZWrite: 1
74 | m_Colors:
75 | - _Color: {r: 1, g: 1, b: 1, a: 1}
76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
77 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/Sphere 1.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a1fe0c83760104b82bcc0bd691a406e8
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/Sphere.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: Sphere
10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
11 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
12 | m_LightmapFlags: 4
13 | m_EnableInstancingVariants: 0
14 | m_DoubleSidedGI: 0
15 | m_CustomRenderQueue: -1
16 | stringTagMap: {}
17 | disabledShaderPasses: []
18 | m_SavedProperties:
19 | serializedVersion: 3
20 | m_TexEnvs:
21 | - _BumpMap:
22 | m_Texture: {fileID: 0}
23 | m_Scale: {x: 1, y: 1}
24 | m_Offset: {x: 0, y: 0}
25 | - _DetailAlbedoMap:
26 | m_Texture: {fileID: 0}
27 | m_Scale: {x: 1, y: 1}
28 | m_Offset: {x: 0, y: 0}
29 | - _DetailMask:
30 | m_Texture: {fileID: 0}
31 | m_Scale: {x: 1, y: 1}
32 | m_Offset: {x: 0, y: 0}
33 | - _DetailNormalMap:
34 | m_Texture: {fileID: 0}
35 | m_Scale: {x: 1, y: 1}
36 | m_Offset: {x: 0, y: 0}
37 | - _EmissionMap:
38 | m_Texture: {fileID: 0}
39 | m_Scale: {x: 1, y: 1}
40 | m_Offset: {x: 0, y: 0}
41 | - _MainTex:
42 | m_Texture: {fileID: 0}
43 | m_Scale: {x: 1, y: 1}
44 | m_Offset: {x: 0, y: 0}
45 | - _MetallicGlossMap:
46 | m_Texture: {fileID: 0}
47 | m_Scale: {x: 1, y: 1}
48 | m_Offset: {x: 0, y: 0}
49 | - _OcclusionMap:
50 | m_Texture: {fileID: 0}
51 | m_Scale: {x: 1, y: 1}
52 | m_Offset: {x: 0, y: 0}
53 | - _ParallaxMap:
54 | m_Texture: {fileID: 0}
55 | m_Scale: {x: 1, y: 1}
56 | m_Offset: {x: 0, y: 0}
57 | m_Floats:
58 | - _BumpScale: 1
59 | - _Cutoff: 0.5
60 | - _DetailNormalMapScale: 1
61 | - _DstBlend: 0
62 | - _GlossMapScale: 1
63 | - _Glossiness: 0
64 | - _GlossyReflections: 1
65 | - _Metallic: 0
66 | - _Mode: 0
67 | - _OcclusionStrength: 1
68 | - _Parallax: 0.02
69 | - _SmoothnessTextureChannel: 1
70 | - _SpecularHighlights: 1
71 | - _SrcBlend: 1
72 | - _UVSec: 0
73 | - _ZWrite: 1
74 | m_Colors:
75 | - _Color: {r: 0, g: 0, b: 0, a: 1}
76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
77 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/Sphere.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 096ffefe818ad4bfcbe4b1438aee72ac
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/bouncy.physicsMaterial2D:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!62 &6200000
4 | PhysicsMaterial2D:
5 | m_ObjectHideFlags: 0
6 | m_PrefabParentObject: {fileID: 0}
7 | m_PrefabInternal: {fileID: 0}
8 | m_Name: bouncy
9 | friction: 0
10 | bounciness: 1
11 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/bouncy.physicsMaterial2D.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 72b2deea4eb46aa428f636f09b7b55d3
3 | timeCreated: 1437925853
4 | licenseType: Store
5 | NativeFormatImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/transparent.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInternal: {fileID: 0}
9 | m_Name: transparent
10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
11 | m_ShaderKeywords: _ALPHABLEND_ON
12 | m_LightmapFlags: 4
13 | m_EnableInstancingVariants: 0
14 | m_DoubleSidedGI: 0
15 | m_CustomRenderQueue: 3000
16 | stringTagMap:
17 | RenderType: Transparent
18 | disabledShaderPasses: []
19 | m_SavedProperties:
20 | serializedVersion: 3
21 | m_TexEnvs:
22 | - _BumpMap:
23 | m_Texture: {fileID: 0}
24 | m_Scale: {x: 1, y: 1}
25 | m_Offset: {x: 0, y: 0}
26 | - _DetailAlbedoMap:
27 | m_Texture: {fileID: 0}
28 | m_Scale: {x: 1, y: 1}
29 | m_Offset: {x: 0, y: 0}
30 | - _DetailMask:
31 | m_Texture: {fileID: 0}
32 | m_Scale: {x: 1, y: 1}
33 | m_Offset: {x: 0, y: 0}
34 | - _DetailNormalMap:
35 | m_Texture: {fileID: 0}
36 | m_Scale: {x: 1, y: 1}
37 | m_Offset: {x: 0, y: 0}
38 | - _EmissionMap:
39 | m_Texture: {fileID: 0}
40 | m_Scale: {x: 1, y: 1}
41 | m_Offset: {x: 0, y: 0}
42 | - _MainTex:
43 | m_Texture: {fileID: 0}
44 | m_Scale: {x: 1, y: 1}
45 | m_Offset: {x: 0, y: 0}
46 | - _MetallicGlossMap:
47 | m_Texture: {fileID: 0}
48 | m_Scale: {x: 1, y: 1}
49 | m_Offset: {x: 0, y: 0}
50 | - _OcclusionMap:
51 | m_Texture: {fileID: 0}
52 | m_Scale: {x: 1, y: 1}
53 | m_Offset: {x: 0, y: 0}
54 | - _ParallaxMap:
55 | m_Texture: {fileID: 0}
56 | m_Scale: {x: 1, y: 1}
57 | m_Offset: {x: 0, y: 0}
58 | m_Floats:
59 | - _BumpScale: 1
60 | - _Cutoff: 0.5
61 | - _DetailNormalMapScale: 1
62 | - _DstBlend: 10
63 | - _GlossMapScale: 1
64 | - _Glossiness: 0
65 | - _GlossyReflections: 1
66 | - _Metallic: 0
67 | - _Mode: 2
68 | - _OcclusionStrength: 1
69 | - _Parallax: 0.02
70 | - _SmoothnessTextureChannel: 0
71 | - _SpecularHighlights: 1
72 | - _SrcBlend: 5
73 | - _UVSec: 0
74 | - _ZWrite: 0
75 | m_Colors:
76 | - _Color: {r: 1, g: 1, b: 1, a: 0.50980395}
77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
78 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Materials/transparent.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6964da17416934c91b9a4e29f8c2d16d
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Meshes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2a89ae0fedff8430e98fd9dea447ee86
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Meshes/LogoAirConsole.fbx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/resources/Art/Meshes/LogoAirConsole.fbx
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Meshes/LogoAirConsole.fbx.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 099bfe4af54b04dd88d6658405b1b203
3 | ModelImporter:
4 | serializedVersion: 19301
5 | internalIDToNameTable: []
6 | externalObjects: {}
7 | materials:
8 | materialImportMode: 1
9 | materialName: 0
10 | materialSearch: 1
11 | materialLocation: 1
12 | animations:
13 | legacyGenerateAnimations: 4
14 | bakeSimulation: 0
15 | resampleCurves: 1
16 | optimizeGameObjects: 0
17 | motionNodeName:
18 | rigImportErrors:
19 | rigImportWarnings:
20 | animationImportErrors:
21 | animationImportWarnings:
22 | animationRetargetingWarnings:
23 | animationDoRetargetingWarnings: 0
24 | importAnimatedCustomProperties: 0
25 | importConstraints: 0
26 | animationCompression: 1
27 | animationRotationError: 0.5
28 | animationPositionError: 0.5
29 | animationScaleError: 0.5
30 | animationWrapMode: 0
31 | extraExposedTransformPaths: []
32 | extraUserProperties: []
33 | clipAnimations: []
34 | isReadable: 0
35 | meshes:
36 | lODScreenPercentages: []
37 | globalScale: 1
38 | meshCompression: 0
39 | addColliders: 0
40 | useSRGBMaterialColor: 1
41 | sortHierarchyByName: 1
42 | importVisibility: 1
43 | importBlendShapes: 1
44 | importCameras: 1
45 | importLights: 1
46 | fileIdsGeneration: 2
47 | swapUVChannels: 0
48 | generateSecondaryUV: 0
49 | useFileUnits: 1
50 | keepQuads: 0
51 | weldVertices: 1
52 | preserveHierarchy: 0
53 | skinWeightsMode: 0
54 | maxBonesPerVertex: 4
55 | minBoneWeight: 0.001
56 | meshOptimizationFlags: -1
57 | indexFormat: 0
58 | secondaryUVAngleDistortion: 8
59 | secondaryUVAreaDistortion: 15.000001
60 | secondaryUVHardAngle: 88
61 | secondaryUVPackMargin: 4
62 | useFileScale: 1
63 | tangentSpace:
64 | normalSmoothAngle: 60
65 | normalImportMode: 0
66 | tangentImportMode: 3
67 | normalCalculationMode: 4
68 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
69 | blendShapeNormalImportMode: 1
70 | normalSmoothingSource: 0
71 | referencedClips: []
72 | importAnimation: 1
73 | humanDescription:
74 | serializedVersion: 3
75 | human: []
76 | skeleton: []
77 | armTwist: 0.5
78 | foreArmTwist: 0.5
79 | upperLegTwist: 0.5
80 | legTwist: 0.5
81 | armStretch: 0.05
82 | legStretch: 0.05
83 | feetSpacing: 0
84 | globalScale: 1
85 | rootMotionBoneName:
86 | hasTranslationDoF: 0
87 | hasExtraRoot: 0
88 | skeletonHasParents: 1
89 | lastHumanDescriptionAvatarSource: {instanceID: 0}
90 | autoGenerateAvatarMappingIfUnspecified: 1
91 | animationType: 2
92 | humanoidOversampling: 1
93 | avatarSetup: 0
94 | additionalBone: 0
95 | userData:
96 | assetBundleName:
97 | assetBundleVariant:
98 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Sprites.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9c07e76cc9d2f4d4386a5f774ba8d45e
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Sprites/ball.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/resources/Art/Sprites/ball.png
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Sprites/ball.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 658e3cbaebcabe54fa3484bc714c9df5
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 10
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 1
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: -3
31 | maxTextureSize: 32
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: 16
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 3
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 32
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 0
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | forceMaximumCompressionQuality_BC6H_BC7: 0
73 | spriteSheet:
74 | serializedVersion: 2
75 | sprites: []
76 | outline: []
77 | physicsShape: []
78 | bones: []
79 | spriteID: 5e97eb03825dee720800000000000000
80 | internalID: 0
81 | vertices: []
82 | indices:
83 | edges: []
84 | weights: []
85 | secondaryTextures: []
86 | spritePackingTag:
87 | pSDRemoveMatte: 0
88 | pSDShowRemoveMatteOption: 0
89 | userData:
90 | assetBundleName:
91 | assetBundleVariant:
92 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Sprites/player.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/resources/Art/Sprites/player.png
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Art/Sprites/player.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 179e85ac2a85c954e8523c81bdb28cb4
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 10
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 1
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: -3
31 | maxTextureSize: 256
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: 16
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 3
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 256
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 0
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | forceMaximumCompressionQuality_BC6H_BC7: 0
73 | spriteSheet:
74 | serializedVersion: 2
75 | sprites: []
76 | outline: []
77 | physicsShape: []
78 | bones: []
79 | spriteID: 5e97eb03825dee720800000000000000
80 | internalID: 0
81 | vertices: []
82 | indices:
83 | edges: []
84 | weights: []
85 | secondaryTextures: []
86 | spritePackingTag:
87 | pSDRemoveMatte: 0
88 | pSDShowRemoveMatteOption: 0
89 | userData:
90 | assetBundleName:
91 | assetBundleVariant:
92 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Audio.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 700787e485c61408fb4839584bd923a1
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Audio/Music.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 45ed1a2c10e234a6aa6cef9a65c1664a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Audio/Music/Happy_1.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/resources/Audio/Music/Happy_1.wav
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Audio/Music/Happy_1.wav.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 804632e1e46684476b4ea5f752e8df15
3 | AudioImporter:
4 | externalObjects: {}
5 | serializedVersion: 6
6 | defaultSettings:
7 | loadType: 0
8 | sampleRateSetting: 0
9 | sampleRateOverride: 44100
10 | compressionFormat: 1
11 | quality: 1
12 | conversionMode: 0
13 | platformSettingOverrides: {}
14 | forceToMono: 0
15 | normalize: 1
16 | preloadAudioData: 1
17 | loadInBackground: 0
18 | ambisonic: 0
19 | 3D: 1
20 | userData:
21 | assetBundleName:
22 | assetBundleVariant:
23 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Prefabs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d7405f219f8d64e79830660a445e5888
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Prefabs/PlayerCapsule.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &1018172500222856
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 4362763096764304}
12 | - component: {fileID: 33866194385368994}
13 | - component: {fileID: 23110335328481398}
14 | - component: {fileID: 136099221899633274}
15 | - component: {fileID: 54540553011825794}
16 | - component: {fileID: 114828151363311678}
17 | m_Layer: 0
18 | m_Name: PlayerCapsule
19 | m_TagString: Untagged
20 | m_Icon: {fileID: 0}
21 | m_NavMeshLayer: 0
22 | m_StaticEditorFlags: 0
23 | m_IsActive: 1
24 | --- !u!4 &4362763096764304
25 | Transform:
26 | m_ObjectHideFlags: 0
27 | m_CorrespondingSourceObject: {fileID: 0}
28 | m_PrefabInstance: {fileID: 0}
29 | m_PrefabAsset: {fileID: 0}
30 | m_GameObject: {fileID: 1018172500222856}
31 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
32 | m_LocalPosition: {x: -2.75, y: 0.11, z: 2.0315852}
33 | m_LocalScale: {x: 0.45037, y: 0.45037, z: 0.45037}
34 | m_Children: []
35 | m_Father: {fileID: 0}
36 | m_RootOrder: 0
37 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
38 | --- !u!33 &33866194385368994
39 | MeshFilter:
40 | m_ObjectHideFlags: 0
41 | m_CorrespondingSourceObject: {fileID: 0}
42 | m_PrefabInstance: {fileID: 0}
43 | m_PrefabAsset: {fileID: 0}
44 | m_GameObject: {fileID: 1018172500222856}
45 | m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
46 | --- !u!23 &23110335328481398
47 | MeshRenderer:
48 | m_ObjectHideFlags: 0
49 | m_CorrespondingSourceObject: {fileID: 0}
50 | m_PrefabInstance: {fileID: 0}
51 | m_PrefabAsset: {fileID: 0}
52 | m_GameObject: {fileID: 1018172500222856}
53 | m_Enabled: 1
54 | m_CastShadows: 1
55 | m_ReceiveShadows: 1
56 | m_DynamicOccludee: 1
57 | m_MotionVectors: 1
58 | m_LightProbeUsage: 1
59 | m_ReflectionProbeUsage: 1
60 | m_RayTracingMode: 2
61 | m_RenderingLayerMask: 4294967295
62 | m_RendererPriority: 0
63 | m_Materials:
64 | - {fileID: 2100000, guid: ad18e7b002c5a46d18e5450b8b45bbf1, type: 2}
65 | m_StaticBatchInfo:
66 | firstSubMesh: 0
67 | subMeshCount: 0
68 | m_StaticBatchRoot: {fileID: 0}
69 | m_ProbeAnchor: {fileID: 0}
70 | m_LightProbeVolumeOverride: {fileID: 0}
71 | m_ScaleInLightmap: 1
72 | m_ReceiveGI: 1
73 | m_PreserveUVs: 0
74 | m_IgnoreNormalsForChartDetection: 0
75 | m_ImportantGI: 0
76 | m_StitchLightmapSeams: 0
77 | m_SelectedEditorRenderState: 3
78 | m_MinimumChartSize: 4
79 | m_AutoUVMaxDistance: 0.5
80 | m_AutoUVMaxAngle: 89
81 | m_LightmapParameters: {fileID: 0}
82 | m_SortingLayerID: 0
83 | m_SortingLayer: 0
84 | m_SortingOrder: 0
85 | --- !u!136 &136099221899633274
86 | CapsuleCollider:
87 | m_ObjectHideFlags: 0
88 | m_CorrespondingSourceObject: {fileID: 0}
89 | m_PrefabInstance: {fileID: 0}
90 | m_PrefabAsset: {fileID: 0}
91 | m_GameObject: {fileID: 1018172500222856}
92 | m_Material: {fileID: 0}
93 | m_IsTrigger: 0
94 | m_Enabled: 1
95 | m_Radius: 0.5
96 | m_Height: 2
97 | m_Direction: 1
98 | m_Center: {x: 0, y: 0, z: 0}
99 | --- !u!54 &54540553011825794
100 | Rigidbody:
101 | m_ObjectHideFlags: 0
102 | m_CorrespondingSourceObject: {fileID: 0}
103 | m_PrefabInstance: {fileID: 0}
104 | m_PrefabAsset: {fileID: 0}
105 | m_GameObject: {fileID: 1018172500222856}
106 | serializedVersion: 2
107 | m_Mass: 1
108 | m_Drag: 0
109 | m_AngularDrag: 0.05
110 | m_UseGravity: 1
111 | m_IsKinematic: 0
112 | m_Interpolate: 0
113 | m_Constraints: 112
114 | m_CollisionDetection: 0
115 | --- !u!114 &114828151363311678
116 | MonoBehaviour:
117 | m_ObjectHideFlags: 0
118 | m_CorrespondingSourceObject: {fileID: 0}
119 | m_PrefabInstance: {fileID: 0}
120 | m_PrefabAsset: {fileID: 0}
121 | m_GameObject: {fileID: 1018172500222856}
122 | m_Enabled: 1
123 | m_EditorHideFlags: 0
124 | m_Script: {fileID: 11500000, guid: fc5d0864cc8934039b036f722f168be7, type: 3}
125 | m_Name:
126 | m_EditorClassIdentifier:
127 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/Prefabs/PlayerCapsule.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 38981a680ee6e49a7a8e01595d2bdf3a
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/android banner placeholder.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/resources/android banner placeholder.jpg
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/android banner placeholder.jpg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 89e42e8f0e05b4d99b5c6004a59d06f1
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 5
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | grayScaleToAlpha: 0
25 | generateCubemap: 6
26 | cubemapConvolution: 0
27 | seamlessCubemap: 0
28 | textureFormat: 1
29 | maxTextureSize: 2048
30 | textureSettings:
31 | serializedVersion: 2
32 | filterMode: -1
33 | aniso: -1
34 | mipBias: -1
35 | wrapU: 1
36 | wrapV: 1
37 | wrapW: 1
38 | nPOTScale: 0
39 | lightmap: 0
40 | compressionQuality: 50
41 | spriteMode: 1
42 | spriteExtrude: 1
43 | spriteMeshType: 1
44 | alignment: 0
45 | spritePivot: {x: 0.5, y: 0.5}
46 | spritePixelsToUnits: 100
47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
48 | spriteGenerateFallbackPhysicsShape: 1
49 | alphaUsage: 1
50 | alphaIsTransparency: 1
51 | spriteTessellationDetail: -1
52 | textureType: 8
53 | textureShape: 1
54 | singleChannelComponent: 0
55 | maxTextureSizeSet: 0
56 | compressionQualitySet: 0
57 | textureFormatSet: 0
58 | platformSettings:
59 | - serializedVersion: 2
60 | buildTarget: DefaultTexturePlatform
61 | maxTextureSize: 2048
62 | resizeAlgorithm: 0
63 | textureFormat: -1
64 | textureCompression: 1
65 | compressionQuality: 50
66 | crunchedCompression: 0
67 | allowsAlphaSplitting: 0
68 | overridden: 0
69 | androidETC2FallbackOverride: 0
70 | spriteSheet:
71 | serializedVersion: 2
72 | sprites: []
73 | outline: []
74 | physicsShape: []
75 | bones: []
76 | spriteID: d24065db3d4f44335a38872ccd8b2c42
77 | vertices: []
78 | indices:
79 | edges: []
80 | weights: []
81 | spritePackingTag:
82 | userData:
83 | assetBundleName:
84 | assetBundleVariant:
85 |
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/androidtv-loadingscreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/AirConsole/resources/androidtv-loadingscreen.png
--------------------------------------------------------------------------------
/Assets/AirConsole/resources/androidtv-loadingscreen.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 12972e20d236d46bb9e0c05e0ffb2dc5
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 10
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 3
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 1024
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | forceMaximumCompressionQuality_BC6H_BC7: 1
73 | - serializedVersion: 3
74 | buildTarget: Standalone
75 | maxTextureSize: 1024
76 | resizeAlgorithm: 0
77 | textureFormat: -1
78 | textureCompression: 1
79 | compressionQuality: 50
80 | crunchedCompression: 0
81 | allowsAlphaSplitting: 0
82 | overridden: 0
83 | androidETC2FallbackOverride: 0
84 | forceMaximumCompressionQuality_BC6H_BC7: 1
85 | - serializedVersion: 3
86 | buildTarget: iPhone
87 | maxTextureSize: 1024
88 | resizeAlgorithm: 0
89 | textureFormat: -1
90 | textureCompression: 1
91 | compressionQuality: 50
92 | crunchedCompression: 0
93 | allowsAlphaSplitting: 0
94 | overridden: 0
95 | androidETC2FallbackOverride: 0
96 | forceMaximumCompressionQuality_BC6H_BC7: 1
97 | - serializedVersion: 3
98 | buildTarget: Android
99 | maxTextureSize: 1024
100 | resizeAlgorithm: 0
101 | textureFormat: -1
102 | textureCompression: 1
103 | compressionQuality: 50
104 | crunchedCompression: 0
105 | allowsAlphaSplitting: 0
106 | overridden: 0
107 | androidETC2FallbackOverride: 0
108 | forceMaximumCompressionQuality_BC6H_BC7: 1
109 | - serializedVersion: 3
110 | buildTarget: WebGL
111 | maxTextureSize: 1024
112 | resizeAlgorithm: 0
113 | textureFormat: -1
114 | textureCompression: 1
115 | compressionQuality: 50
116 | crunchedCompression: 0
117 | allowsAlphaSplitting: 0
118 | overridden: 0
119 | androidETC2FallbackOverride: 0
120 | forceMaximumCompressionQuality_BC6H_BC7: 1
121 | spriteSheet:
122 | serializedVersion: 2
123 | sprites: []
124 | outline: []
125 | physicsShape: []
126 | bones: []
127 | spriteID: 5e97eb03825dee720800000000000000
128 | internalID: 0
129 | vertices: []
130 | indices:
131 | edges: []
132 | weights: []
133 | secondaryTextures: []
134 | spritePackingTag:
135 | pSDRemoveMatte: 0
136 | pSDShowRemoveMatteOption: 0
137 | userData:
138 | assetBundleName:
139 | assetBundleVariant:
140 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 78f15d4c3531b674fa239b9031b7d69b
3 | folderAsset: yes
4 | timeCreated: 1435571204
5 | licenseType: Store
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/AirConsole.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e37d83ebce05ad74683fd3228dde9e7d
3 | timeCreated: 1437923318
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {fileID: 2800000, guid: 7880c2c6c2772ca4dbf267146591adf5, type: 3}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/DebugLevel.cs:
--------------------------------------------------------------------------------
1 | namespace NDream.AirConsole {
2 | public class DebugLevel {
3 | public const bool DEFAULT_INFO = false;
4 | public const bool DEFAULT_WARNING = true;
5 | public const bool DEFAULT_ERROR = true;
6 | public bool info = true;
7 | public bool warning = true;
8 | public bool error = true;
9 | }
10 | }
11 |
12 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/DebugLevel.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c9ddf324121125748ac451dfd51f1e47
3 | timeCreated: 1437835206
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bef99b3522d00c447b4ac4b6afe11b35
3 | folderAsset: yes
4 | timeCreated: 1435670923
5 | licenseType: Free
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/Extentions.cs:
--------------------------------------------------------------------------------
1 | #if !DISABLE_AIRCONSOLE
2 | using UnityEngine;
3 | using UnityEditor;
4 | using System.Collections;
5 | using System.IO;
6 | using System.Net;
7 | using System.Net.Sockets;
8 |
9 | namespace NDream.AirConsole.Editor {
10 | [InitializeOnLoad]
11 | class Extentions {
12 |
13 | public static WebListener webserver = new WebListener ();
14 |
15 | static Extentions () {
16 |
17 | InitSettings ();
18 |
19 | if (webserver != null) {
20 | webserver.Start ();
21 | }
22 |
23 | PlayMode.PlayModeChanged += OnPlayModeStateChanged;
24 |
25 | }
26 |
27 | [MenuItem("Assets/Create/AirConsole")]
28 | [MenuItem("GameObject/Create Other/AirConsole")]
29 | static void CreateAirConsoleObject () {
30 |
31 | AirConsole airConsole = AirConsole.ACFindObjectOfType ();
32 |
33 | if (airConsole == null) {
34 |
35 | GameObject _tmp = new GameObject ("AirConsole");
36 | _tmp.AddComponent ();
37 |
38 | } else {
39 |
40 | EditorUtility.DisplayDialog ("Already exists", "AirConsole object already exists in the current scene", "ok");
41 | EditorGUIUtility.PingObject (airConsole.GetInstanceID ());
42 | }
43 | }
44 |
45 | public static void OnPlayModeStateChanged (PlayModeState currentMode, PlayModeState changedMode) {
46 |
47 | if (currentMode == PlayModeState.Stopped && changedMode == PlayModeState.Playing ||
48 | currentMode == PlayModeState.AboutToPlay && changedMode == PlayModeState.Playing) {
49 |
50 | AirConsole controller = AirConsole.ACFindObjectOfType();
51 | OpenBrowser (controller, Application.dataPath + Settings.WEBTEMPLATE_PATH);
52 | }
53 | }
54 |
55 | public static void InitSettings () {
56 |
57 | if (EditorPrefs.GetInt ("webServerPort") != 0) {
58 | Settings.webServerPort = EditorPrefs.GetInt ("webServerPort");
59 | }
60 |
61 | if (EditorPrefs.GetInt ("webSocketPort") != 0) {
62 | Settings.webSocketPort = EditorPrefs.GetInt ("webSocketPort");
63 | }
64 |
65 | if (EditorPrefs.GetBool ("debugInfo", true) != true) {
66 | Settings.debug.info = EditorPrefs.GetBool ("debugInfo");
67 | }
68 |
69 | if (EditorPrefs.GetBool ("debugWarning", true) != true) {
70 | Settings.debug.warning = EditorPrefs.GetBool ("debugWarning");
71 | }
72 |
73 | if (EditorPrefs.GetBool ("debugError", true) != true) {
74 | Settings.debug.error = EditorPrefs.GetBool ("debugError");
75 | }
76 |
77 | if (EditorPrefs.GetString("python2Path", "") != "") {
78 | Settings.Python2Path = EditorPrefs.GetString("python2Path");
79 | }
80 | }
81 |
82 | public static void ResetDefaultValues () {
83 |
84 | Settings.debug.info = DebugLevel.DEFAULT_INFO;
85 | Settings.debug.warning = DebugLevel.DEFAULT_WARNING;
86 | Settings.debug.error = DebugLevel.DEFAULT_ERROR;
87 |
88 | EditorPrefs.SetBool ("debugInfo", Settings.debug.info);
89 | EditorPrefs.SetBool ("debugWarning", Settings.debug.warning);
90 | EditorPrefs.SetBool ("debugError", Settings.debug.error);
91 |
92 | Settings.webServerPort = Settings.DEFAULT_WEBSERVER_PORT;
93 | Settings.webSocketPort = Settings.DEFAULT_WEBSOCKET_PORT;
94 |
95 | EditorPrefs.SetInt ("webServerPort", Settings.webServerPort);
96 | EditorPrefs.SetInt ("webSocketPort", Settings.webSocketPort);
97 | }
98 |
99 | public static void OpenBrowser (AirConsole controller, string startUpPath) {
100 |
101 | // set the root path for webserver
102 | webserver.SetPath (startUpPath);
103 | webserver.Start ();
104 |
105 | if (controller != null && controller.enabled) {
106 |
107 | if (controller.controllerHtml != null) {
108 |
109 | string sourcePath = Path.Combine (Directory.GetCurrentDirectory (), AssetDatabase.GetAssetPath (controller.controllerHtml));
110 | string targetPath = Path.Combine (Directory.GetCurrentDirectory (), "Assets" + Settings.WEBTEMPLATE_PATH + "/controller.html");
111 |
112 | // rename index.html to screen.html
113 | File.Copy (sourcePath, targetPath, true);
114 |
115 | if (controller.browserStartMode != StartMode.NoBrowserStart) {
116 |
117 | string url = AirConsole.GetUrl (controller.browserStartMode) + GetLocalAddress () + "/";
118 |
119 | // add port info if starting the unity editor version
120 | if (startUpPath.Contains (Settings.WEBTEMPLATE_PATH)) {
121 | url += "?unity-editor-websocket-port=" + Settings.webSocketPort + "&unity-plugin-version=" + Settings.VERSION;
122 | }
123 | Application.OpenURL (url);
124 | } else {
125 | AirConsole.instance.ProcessJS ("{action:\"onReady\", code:\"0\", devices:[], server_time_offset: 0, device_id: 0, location: \"\" }");
126 | }
127 |
128 | } else {
129 |
130 | EditorUtility.DisplayDialog ("AirConsole", "Please link a controller file to the AirConsole object.", "ok");
131 | Debug.Break ();
132 | }
133 | }
134 | }
135 |
136 | public static string GetLocalAddress () {
137 | if(!string.IsNullOrEmpty(AirConsole.instance.LocalIpOverride)) {
138 | return AirConsole.instance.LocalIpOverride;
139 | }
140 | string localIP = "";
141 |
142 | using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0)) {
143 | socket.Connect("8.8.8.8", 65530);
144 | IPEndPoint endPoint = socket.LocalEndPoint as IPEndPoint;
145 | localIP = endPoint.Address.ToString();
146 | }
147 | localIP += ":" + Settings.webServerPort;
148 | return localIP.StartsWith("http") ? localIP : $"http://{localIP}";
149 | }
150 | }
151 | }
152 | #endif
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/Extentions.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e2536216e3cc26742a0e293a982ed909
3 | timeCreated: 1437754626
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/Inspector.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b821d1b6206d7784cafde0ec55116ef9
3 | timeCreated: 1435670925
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/PlayMode.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEditor;
3 | using System;
4 | using System.Collections;
5 |
6 | namespace NDream.AirConsole.Editor {
7 | public enum PlayModeState {
8 | Stopped,
9 | Playing,
10 | Paused,
11 | AboutToStop,
12 | AboutToPlay
13 | }
14 |
15 | [InitializeOnLoad]
16 | public class PlayMode {
17 | private static PlayModeState _currentState = PlayModeState.Stopped;
18 |
19 | static PlayMode () {
20 | EditorApplication.playModeStateChanged += OnUnityPlayModeChanged;
21 | if (EditorApplication.isPaused)
22 | _currentState = PlayModeState.Paused;
23 | }
24 |
25 | static int Bool2Int (bool b) {
26 | if (b)
27 | return 1;
28 | else
29 | return 2;
30 | }
31 |
32 | static int GetEditorAppStateBoolComb () {
33 | int b1 = Bool2Int (EditorApplication.isUpdating);
34 | int b2 = Bool2Int (EditorApplication.isPlayingOrWillChangePlaymode);
35 | int b3 = Bool2Int (EditorApplication.isPlaying);
36 | int b4 = Bool2Int (EditorApplication.isPaused);
37 | int b5 = Bool2Int (EditorApplication.isCompiling);
38 | return b1 + b2 * 10 + b3 * 100 + b4 * 1000 + b5 * 10000;
39 | }
40 |
41 | public static event Action PlayModeChanged;
42 |
43 | private static void OnPlayModeChanged (PlayModeState currentState, PlayModeState changedState) {
44 | if (PlayModeChanged != null)
45 | PlayModeChanged (currentState, changedState);
46 | }
47 |
48 | private static void OnUnityPlayModeChanged (PlayModeStateChange playModeState) {
49 |
50 | var changedState = PlayModeState.Stopped;
51 |
52 | int state = GetEditorAppStateBoolComb ();
53 |
54 | switch (state) {
55 | case (22112):
56 | changedState = PlayModeState.Playing;
57 | break;
58 | case (21112):
59 | changedState = PlayModeState.Paused;
60 | break;
61 | case (22222):
62 | changedState = PlayModeState.Stopped;
63 | break;
64 | case (22122):
65 | changedState = PlayModeState.AboutToStop;
66 | break;
67 | case (21122):
68 | changedState = PlayModeState.AboutToStop;
69 | break;
70 | case (21222):
71 | changedState = PlayModeState.Stopped;
72 | break;
73 | case 22212:
74 | changedState = PlayModeState.Stopped;
75 | break;
76 | case 21212:
77 | changedState = PlayModeState.Paused;
78 | break;
79 | default:
80 | // Debug.Log("No such state combination defined: " + state);
81 | break;
82 | }
83 |
84 | // Fire PlayModeChanged event.
85 | if (_currentState != changedState)
86 | OnPlayModeChanged (_currentState, changedState);
87 |
88 | // Set current state.
89 | _currentState = changedState;
90 | }
91 | }
92 | }
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/PlayMode.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f62f6a50dc6e20241aca97d01fbb2881
3 | timeCreated: 1437762758
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/PostBuildProcess.cs:
--------------------------------------------------------------------------------
1 | #if !DISABLE_AIRCONSOLE
2 | using UnityEngine;
3 | using UnityEditor;
4 | using UnityEditor.Callbacks;
5 | using System.IO;
6 | using UnityEditor.Build;
7 |
8 | namespace NDream.AirConsole.Editor {
9 | public class PostBuildProcess {
10 |
11 | [PostProcessBuildAttribute(1)]
12 | public static void OnPostprocessBuild (BuildTarget target, string pathToBuiltProject) {
13 | if (target == BuildTarget.WebGL) {
14 | // Check if screen.html already exists
15 | if (File.Exists (pathToBuiltProject + "/screen.html")) {
16 | File.Delete (pathToBuiltProject + "/screen.html");
17 | }
18 |
19 | // Renaming index.html to screen.html
20 | File.Move (pathToBuiltProject + "/index.html", pathToBuiltProject + "/screen.html");
21 |
22 | // Check if game.json already exists
23 | if (File.Exists (pathToBuiltProject + "/Build/game.json")) {
24 | File.Delete (pathToBuiltProject + "/Build/game.json");
25 | }
26 |
27 | string configuration_file_path = pathToBuiltProject + "/Build/" + Path.GetFileName (pathToBuiltProject) + ".json";
28 |
29 | // Rename JSON configuration to game.json (Only for Unity versions < 2020.x)
30 | // See https://forum.unity.com/threads/changes-to-the-webgl-loader-and-templates-introduced-in-unity-2020-1.817698/
31 | // for details, the build config is no longer stored in a JSON file but embedded into the HTML
32 | if (File.Exists (configuration_file_path)) {
33 | File.Move (configuration_file_path, pathToBuiltProject + "/Build/game.json");
34 | }
35 |
36 | // Save last port path
37 | EditorPrefs.SetString ("airconsolePortPath", pathToBuiltProject);
38 | }
39 | }
40 | }
41 | }
42 | #endif
43 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/PostBuildProcess.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bf693daf251b5744c94fbae65dd60f4f
3 | timeCreated: 1435670435
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/PreBuildProcessing.cs:
--------------------------------------------------------------------------------
1 | #if !DISABLE_AIRCONSOLE
2 | #if UNITY_EDITOR
3 | using System;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Xml.Linq;
7 | using UnityEditor;
8 | using UnityEditor.Build;
9 | using UnityEditor.Build.Reporting;
10 | using UnityEngine;
11 |
12 | namespace NDream.AirConsole.Editor {
13 | public class PreBuildProcessing : IPreprocessBuildWithReport {
14 | public int callbackOrder => 1;
15 |
16 | private const string ANDROID_MANIFEST_PATH = "Assets/Plugins/Android/AndroidManifest.xml";
17 |
18 | private const string UNITY6_ANDROID_ACTIVITY_NAME = "com.unity3d.player.UnityPlayerGameActivity";
19 | private const string UNITY6_ANDROID_ACTIVITY_THEME = "@style/BaseUnityGameActivityTheme";
20 | private const string UNITY_ANDROID_ACTIVITY_NAME = "com.unity3d.player.UnityPlayerActivity";
21 | private const string UNITY_ANDROID_ACTIVITY_THEME = "@style/UnityThemeSelector";
22 |
23 |
24 | public void OnPreprocessBuild(BuildReport report) {
25 | CheckWebGLSetup();
26 |
27 | Debug.Log("Used Python path: " + Environment.GetEnvironmentVariable("EMSDK_PYTHON"));
28 |
29 | // In case you get a Build exception from Unity such as:
30 | // System.ComponentModel.Win32Exception (2): No such file or directory)
31 | // Make sure that the correct Python version is installed and can be found by Unity during
32 | // the Build process.
33 |
34 | // If you need to set the Python path manually you can use the code below, uncomment it and
35 | // set "EMSDK_PYTHON" to the the Python 3 (Or Python 2 for old Unity versions) path:
36 | #if !UNITY_2020_1_OR_NEWER && UNITY_EDITOR_OSX
37 | System.Environment.SetEnvironmentVariable("EMSDK_PYTHON", Settings.Python2Path);
38 | #endif
39 |
40 | #if UNITY_ANDROID
41 | ValidateAndroidManifest();
42 | #endif
43 | }
44 |
45 |
46 | private static void ValidateAndroidManifest() {
47 | string disabledManifestPath = Path.GetFullPath($"{ANDROID_MANIFEST_PATH}.DISABLED");
48 | string manifestPath = Path.GetFullPath(ANDROID_MANIFEST_PATH);
49 |
50 | if (File.Exists(disabledManifestPath)) {
51 | File.Move(disabledManifestPath, manifestPath);
52 | }
53 |
54 | if (File.Exists(manifestPath)) {
55 | XDocument manifest = XDocument.Load(manifestPath);
56 |
57 | if (manifest.Root == null) {
58 | return;
59 | }
60 |
61 | XElement[] applicationElements = manifest.Root.Elements("application").ToArray();
62 | if (!applicationElements.Any()) {
63 | return;
64 | }
65 |
66 | XElement[] activityElements = applicationElements.Elements("activity").ToArray();
67 | if (!activityElements.Any()) {
68 | return;
69 | }
70 |
71 | XName nameAttribute = XName.Get("name", "http://schemas.android.com/apk/res/android");
72 | XName themeAttribute = XName.Get("theme", "http://schemas.android.com/apk/res/android");
73 |
74 | foreach (XElement activityElement in activityElements) {
75 | XAttribute name = activityElement.Attribute(nameAttribute);
76 | if (name == null) {
77 | continue;
78 | }
79 |
80 | string activityName = name.Value;
81 | if (activityName == UNITY6_ANDROID_ACTIVITY_NAME) {
82 | XAttribute theme = activityElement.Attribute(themeAttribute);
83 | if (theme == null) {
84 | activityElement.SetAttributeValue(themeAttribute, UNITY6_ANDROID_ACTIVITY_THEME);
85 | }
86 | } else if (activityName == UNITY_ANDROID_ACTIVITY_NAME) {
87 | XAttribute theme = activityElement.Attribute(themeAttribute);
88 | if (theme == null) {
89 | activityElement.SetAttributeValue(themeAttribute, UNITY_ANDROID_ACTIVITY_THEME);
90 | }
91 | }
92 | }
93 |
94 | manifest.Save(manifestPath);
95 | } else {
96 | throw new UnityException(
97 | $"{ANDROID_MANIFEST_PATH} does not exist. AirConsole for Android TV requires specific settings. Please reimport the AirConsole package to recreate the correct AndroidManifest.");
98 | }
99 | }
100 |
101 | private static void CheckWebGLSetup() {
102 | #if UNITY_WEBGL
103 | if (string.IsNullOrEmpty(PlayerSettings.WebGL.template)) {
104 | EditorUtility.DisplayDialog("Error", "No WebGL Template configured", "Cancel");
105 | throw new UnityException("WebGL template not configured");
106 | }
107 |
108 | if (Directory.Exists(GetWebGLTemplateDirectory())) {
109 | string templatePath = GetWebGLTemplateDirectory();
110 | if (!Directory.GetFiles(templatePath).Any(filename => filename.EndsWith("controller.html"))) {
111 | EditorUtility.DisplayDialog("Error",
112 | "The controller has not yet been generated. Please execute the game at least once in play mode.",
113 | "Cancel");
114 | throw new UnityException("Controller missing in WebGL template location.");
115 | }
116 |
117 | if (!Directory.GetFiles(templatePath).Any(filename => filename.EndsWith("airconsole-unity-plugin.js"))) {
118 | EditorUtility.DisplayDialog("Error",
119 | "airconsole-unity-plugin missing. Please set up your airconsole plugin again",
120 | "Cancel");
121 | throw new UnityException("Unity template incomplete");
122 | }
123 | }
124 | #endif
125 | }
126 |
127 | private static string GetWebGLTemplateDirectory() {
128 | return Path.GetFullPath("Assets/WebGLTemplates/" + PlayerSettings.WebGL.template.Split(':')[1]);
129 | }
130 | }
131 | }
132 | #endif
133 | #endif
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/PreBuildProcessing.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a07a0f17666ca403baa269023708928a
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/ProjectConfigurationCheck.cs:
--------------------------------------------------------------------------------
1 | #if !DISABLE_AIRCONSOLE
2 | using System.Linq;
3 | using UnityEditor;
4 | using UnityEditor.Build;
5 | using UnityEditor.Build.Reporting;
6 | using UnityEngine;
7 | using Debug = UnityEngine.Debug;
8 |
9 | namespace NDream.AirConsole.Editor {
10 | public abstract class UnityVersionCheck {
11 | [InitializeOnLoadMethod]
12 | private static void CheckUnityVersions() {
13 | #if !UNITY_2019_4_OR_NEWER
14 | EditorUtility.DisplayDialog("Unsupported", $"AirConsole {Settings.VERSION} requires Unity 2019.4 or newer",
15 | "I understand");
16 | EditorApplication.isPlaying = false;
17 | #endif
18 | }
19 | }
20 |
21 | public abstract class ProjectConfigurationCheck : IPreprocessBuildWithReport {
22 | public int callbackOrder => 0;
23 |
24 | public void OnPreprocessBuild(BuildReport report) {
25 | switch (report.summary.platform) {
26 | case BuildTarget.Android:
27 | CheckAndroidPlayerSettings();
28 | break;
29 |
30 | case BuildTarget.WebGL:
31 | CheckWebGLPlayerSettings();
32 | break;
33 |
34 | default:
35 | throw new UnityException($"AirConsole Plugin does not support platform {report.summary.platform}");
36 | }
37 | }
38 |
39 | #if UNITY_WEBGL
40 | [InitializeOnLoadMethod]
41 | #endif
42 | private static void CheckWebGLPlayerSettings() {
43 | if (EditorUserBuildSettings.androidBuildSubtarget != MobileTextureSubtarget.ASTC) {
44 | Debug.LogWarning("AirConsole recommends 'ASTC' as the 'Texture Compression' for WebGL builds for improved mobile performance.");
45 | }
46 |
47 | string expectedTemplateName = Settings.WEBTEMPLATE_PATH.Split('/').Last();
48 | string[] templateUri = PlayerSettings.WebGL.template.Split(':');
49 |
50 | if (templateUri.Length != 2 || templateUri[0].ToUpper() == "APPLICATION" || (templateUri[1] != expectedTemplateName && Settings.TEMPLATE_NAMES.Contains(templateUri[1]))) {
51 | string incompatibleTemplateMessage =
52 | $"Unity version \"{Application.unityVersion}\" needs the AirConsole WebGL template \"{expectedTemplateName}\" to work.\nPlease change the WebGL template in your Project Settings under Player (WebGL platform tab) > Resolution and Presentation > WebGL Template.";
53 | Debug.LogError(incompatibleTemplateMessage);
54 |
55 | if (EditorUtility.DisplayDialog("Incompatible WebGL Template", incompatibleTemplateMessage, "Open Player Settings", "Cancel"))
56 | {
57 | SettingsService.OpenProjectSettings("Project/Player");
58 | }
59 | }
60 | }
61 |
62 | #if UNITY_ANDROID
63 | [InitializeOnLoadMethod]
64 | #endif
65 | private static void CheckAndroidPlayerSettings() {
66 | EnforceAndroidPlayerSettings();
67 | EnforceAndroidTVSettings();
68 | }
69 |
70 | private static void EnforceAndroidPlayerSettings() {
71 | // The internet permission is required for the AirConsole Unity Plugin.
72 | PlayerSettings.Android.forceInternetPermission = true;
73 |
74 | // To ensure Google Play compatibility, we require a target SDK of 34 or higher.
75 | const int requiredAndroidTargetSdk = 34;
76 | if ((int)PlayerSettings.Android.targetSdkVersion < requiredAndroidTargetSdk) {
77 | Debug.LogError(
78 | $"AirConsole requires 'Target SDK Version' of {requiredAndroidTargetSdk} or higher.\n"
79 | + $"We are updating the Android settings now.");
80 | }
81 |
82 | PlayerSettings.Android.targetSdkVersion = (AndroidSdkVersions)requiredAndroidTargetSdk;
83 |
84 | PlayerSettings.Android.ARCoreEnabled = false;
85 | PlayerSettings.Android.androidIsGame = true;
86 |
87 | UpdateAndroidPlayerSettings();
88 |
89 | PlayerSettings.allowedAutorotateToLandscapeLeft = true;
90 | PlayerSettings.allowedAutorotateToLandscapeRight = true;
91 | PlayerSettings.allowedAutorotateToPortrait = false;
92 | PlayerSettings.allowedAutorotateToPortraitUpsideDown = false;
93 | PlayerSettings.defaultInterfaceOrientation = UIOrientation.LandscapeLeft;
94 |
95 | if (EditorUserBuildSettings.androidBuildSubtarget != MobileTextureSubtarget.ASTC) {
96 | Debug.LogWarning("AirConsole recommends 'ASTC' as the 'Texture Compression' for Android builds for improved mobile performance.");
97 | }
98 | }
99 |
100 | private static void UpdateAndroidPlayerSettings() {
101 | SerializedObject playerSettings = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/ProjectSettings.asset")[0]);
102 |
103 | SerializedProperty filterTouchesProperty = playerSettings.FindProperty("AndroidFilterTouchesWhenObscured");
104 | filterTouchesProperty.boolValue = false;
105 |
106 | SerializedProperty androidGamePadSupportLevel = playerSettings.FindProperty("androidGamepadSupportLevel");
107 | androidGamePadSupportLevel.intValue = 0;
108 |
109 | playerSettings.ApplyModifiedProperties();
110 | }
111 |
112 | private static void EnforceAndroidTVSettings() {
113 | PlayerSettings.Android.androidTVCompatibility = true;
114 | #if UNITY_ANDROID
115 | if((PlayerSettings.Android.targetArchitectures & AndroidArchitecture.ARM64) != AndroidArchitecture.ARM64
116 | || (PlayerSettings.Android.targetArchitectures & AndroidArchitecture.ARMv7) != AndroidArchitecture.ARMv7) {
117 | Debug.LogWarning("AirConsole for TV requires 'Target Architectures' to be set to ARMv7 and ARM64 in Player Settings.\n"
118 | + "We are updating the Android settings now.");
119 | PlayerSettings.Android.targetArchitectures = AndroidArchitecture.ARM64 | AndroidArchitecture.ARMv7;
120 | }
121 | #endif
122 | }
123 |
124 | }
125 | }
126 | #endif
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/ProjectConfigurationCheck.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ad7ea0ffc1224648b158fd41c19d78b9
3 | timeCreated: 1733323668
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/SettingWindow.cs:
--------------------------------------------------------------------------------
1 | #if !DISABLE_AIRCONSOLE
2 | using UnityEngine;
3 | using UnityEditor;
4 | using System.Collections;
5 |
6 | namespace NDream.AirConsole.Editor {
7 | public class SettingWindow : EditorWindow {
8 |
9 | GUIStyle styleBlack = new GUIStyle ();
10 | bool groupEnabled = false;
11 | static Texture2D bg;
12 | static Texture logo;
13 | static Texture logoSmall;
14 | static GUIContent titleInfo;
15 |
16 | public void OnEnable () {
17 |
18 | // get images
19 | bg = (Texture2D)Resources.Load ("AirConsoleBg");
20 | logo = (Texture)Resources.Load ("AirConsoleLogoText");
21 | logoSmall = (Texture)Resources.Load ("AirConsoleLogoSmall");
22 | titleInfo = new GUIContent ("AirConsole", logoSmall, "AirConsole Settings");
23 |
24 | // setup style for airconsole logo
25 | styleBlack.normal.background = bg;
26 | styleBlack.normal.textColor = Color.white;
27 | styleBlack.margin.top = 5;
28 | styleBlack.padding.right = 5;
29 | }
30 |
31 | [MenuItem("Window/AirConsole/Settings")]
32 | static void Init () {
33 |
34 | SettingWindow window = (SettingWindow)EditorWindow.GetWindow (typeof(SettingWindow));
35 | window.titleContent = titleInfo;
36 | window.Show ();
37 | }
38 |
39 | void OnGUI () {
40 |
41 | // show logo & version
42 | EditorGUILayout.BeginHorizontal (styleBlack, GUILayout.Height (30));
43 | GUILayout.Label (logo, GUILayout.Width (128), GUILayout.Height (30));
44 | GUILayout.FlexibleSpace ();
45 | GUILayout.Label ("v" + Settings.VERSION, styleBlack);
46 | EditorGUILayout.EndHorizontal ();
47 |
48 | GUILayout.Label ("AirConsole Settings", EditorStyles.boldLabel);
49 |
50 | Settings.webSocketPort = EditorGUILayout.IntField ("Websocket Port", Settings.webSocketPort, GUILayout.MaxWidth (200));
51 | EditorPrefs.SetInt ("webSocketPort", Settings.webSocketPort);
52 |
53 | Settings.webServerPort = EditorGUILayout.IntField ("Webserver Port", Settings.webServerPort, GUILayout.MaxWidth (200));
54 | EditorPrefs.SetInt ("webServerPort", Settings.webServerPort);
55 |
56 | EditorGUILayout.LabelField ("Webserver is running", Extentions.webserver.IsRunning ().ToString ());
57 |
58 | GUILayout.BeginHorizontal ();
59 |
60 | GUILayout.Space (150);
61 | if (GUILayout.Button ("Stop", GUILayout.MaxWidth (60))) {
62 | Extentions.webserver.Stop ();
63 | }
64 | if (GUILayout.Button ("Restart", GUILayout.MaxWidth (60))) {
65 | Extentions.webserver.Restart ();
66 | }
67 |
68 | GUILayout.EndHorizontal ();
69 |
70 | groupEnabled = EditorGUILayout.BeginToggleGroup ("Debug Settings", groupEnabled);
71 |
72 | Settings.debug.info = EditorGUILayout.Toggle ("Info", Settings.debug.info);
73 | EditorPrefs.SetBool ("debugInfo", Settings.debug.info);
74 |
75 | Settings.debug.warning = EditorGUILayout.Toggle ("Warning", Settings.debug.warning);
76 | EditorPrefs.SetBool ("debugWarning", Settings.debug.warning);
77 |
78 | Settings.debug.error = EditorGUILayout.Toggle ("Error", Settings.debug.error);
79 | EditorPrefs.SetBool ("debugError", Settings.debug.error);
80 |
81 | EditorGUILayout.EndToggleGroup ();
82 |
83 |
84 | EditorGUILayout.BeginHorizontal();
85 | Settings.Python2Path = EditorGUILayout.TextField("Python 2 Path", Settings.Python2Path, GUILayout.MinWidth(600));
86 | EditorPrefs.SetString("python2Path", Settings.Python2Path);
87 | GUILayout.EndHorizontal();
88 |
89 | EditorGUILayout.BeginHorizontal (styleBlack);
90 |
91 | GUILayout.FlexibleSpace ();
92 | if (GUILayout.Button ("Reset Settings", GUILayout.MaxWidth (110))) {
93 | Extentions.ResetDefaultValues ();
94 | }
95 |
96 | GUILayout.EndHorizontal ();
97 |
98 | }
99 | }
100 | }
101 | #endif
102 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/SettingWindow.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6bd50cbd56c9f4a40bdf74c061e05d42
3 | timeCreated: 1437826751
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/WebListener.cs:
--------------------------------------------------------------------------------
1 | #if !DISABLE_AIRCONSOLE
2 | using System;
3 | using System.Threading;
4 | using System.Net;
5 | using System.IO;
6 | using System.Text;
7 | using UnityEngine;
8 |
9 | namespace NDream.AirConsole.Editor {
10 | public class WebListener {
11 |
12 | // private vars
13 | private HttpListener listener;
14 | private string startUpPath;
15 | private string prefix;
16 | private HttpListenerContext request;
17 | private Thread t;
18 |
19 | public void SetPath (string path) {
20 | startUpPath = path;
21 | }
22 |
23 | public void Start () {
24 |
25 | if (listener == null) {
26 | listener = new HttpListener ();
27 | }
28 |
29 | prefix = string.Format ("http://*:{0}/", Settings.webServerPort.ToString ());
30 |
31 | if (!listener.IsListening) {
32 | listener.Start ();
33 |
34 | if (!listener.Prefixes.Contains (prefix)) {
35 | listener.Prefixes.Add (prefix);
36 | }
37 |
38 | if (t != null && t.IsAlive) {
39 | t.Abort ();
40 | }
41 |
42 | t = new Thread (new ThreadStart (ClientListener));
43 | t.Start ();
44 | }
45 | }
46 |
47 | public bool IsRunning () {
48 | if (listener != null) {
49 | return listener.IsListening;
50 | }
51 | return false;
52 | }
53 |
54 | public void ClientListener () {
55 | while (true) {
56 | try {
57 | request = listener.GetContext ();
58 | ThreadPool.QueueUserWorkItem (ProcessRequest, request);
59 | } catch (ThreadAbortException) {
60 | // ThreadAbortException is thrown when the webserver gets stopped/restarted
61 | } catch (Exception e) {
62 | if (Settings.debug.error) {
63 | Debug.LogError (e.ToString ());
64 | }
65 | }
66 | }
67 | }
68 |
69 | public void ProcessRequest (object listenerContext) {
70 | try {
71 | var context = (HttpListenerContext)listenerContext;
72 | string rawUrl = context.Request.RawUrl;
73 |
74 | // conditions if editor version gets called
75 | if (startUpPath.Contains (Settings.WEBTEMPLATE_PATH)) {
76 | // remove query parameters
77 | rawUrl = rawUrl.Split ('?') [0];
78 | // translate screen.html to index.html
79 | rawUrl = rawUrl.Replace ("screen.html", "index.html");
80 | }
81 |
82 | string filename = Path.GetFileName (rawUrl);
83 | string path = startUpPath + System.Uri.UnescapeDataString(rawUrl);;
84 |
85 | byte[] msg;
86 |
87 | if (!File.Exists (path)) {
88 | context.Response.StatusCode = (int)HttpStatusCode.NotFound;
89 | msg = Encoding.UTF8.GetBytes ("AirConsole ErrorAirWebserver can't find resources!
");
90 |
91 | } else {
92 | context.Response.StatusCode = (int)HttpStatusCode.OK;
93 | msg = File.ReadAllBytes (path);
94 | context.Response.ContentType = ReturnMIMEType (Path.GetExtension (filename));
95 | }
96 |
97 | context.Response.ContentLength64 = msg.Length;
98 |
99 | using (Stream s = context.Response.OutputStream) {
100 | s.Write (msg, 0, msg.Length);
101 | }
102 | } catch (Exception e) {
103 | if (Settings.debug.error) {
104 | if (e.Message != "Write failure") {
105 | Debug.LogError (e.Message);
106 | }
107 | }
108 | }
109 | }
110 |
111 | public string ReturnMIMEType (string filename) {
112 |
113 | switch (filename) {
114 | case ".txt":
115 | return "text/plain";
116 | case ".gif":
117 | return "image/gif";
118 | case ".png":
119 | return "image/png";
120 | case ".jpg":
121 | case "jpeg":
122 | return "image/jpeg";
123 | case ".bmp":
124 | return "image/bmp";
125 | case ".svg":
126 | return "image/svg+xml";
127 | case ".wav":
128 | return "audio/wav";
129 | case ".mp3":
130 | return "audio/mp3";
131 | case ".html":
132 | return "text/html";
133 | case ".htm":
134 | return "text/html";
135 | case ".css":
136 | return "text/css";
137 | case ".js":
138 | return "application/javascript";
139 | default:
140 | return "application/octet-stream";
141 | }
142 | }
143 |
144 | public void Stop () {
145 | t.Abort ();
146 | listener.Stop ();
147 | }
148 |
149 | public void Restart () {
150 | Stop ();
151 | Start ();
152 | }
153 | }
154 | }
155 | #endif
156 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Editor/WebListener.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a7484c3ec7c6b424088f06baa57602bb
3 | timeCreated: 1437574812
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Settings.cs:
--------------------------------------------------------------------------------
1 | #if !DISABLE_AIRCONSOLE
2 | using UnityEngine;
3 |
4 | namespace NDream.AirConsole {
5 | public static class Settings {
6 | public const string VERSION = "2.5.7";
7 |
8 | // ReSharper disable once UnusedMember.Global // Used by AirConsole on Android only
9 | public const string AIRCONSOLE_BASE_URL = "https://www.airconsole.com/";
10 | public const string AIRCONSOLE_DEV_URL_HTTPS = "https://www.airconsole.com/";
11 | public const string AIRCONSOLE_DEV_URL_HTTP = "http://http.airconsole.com/";
12 |
13 | public const string AIRCONSOLE_PROFILE_PICTURE_URL = "https://www.airconsole.com/api/profile-picture?uid=";
14 | public const string WEBSOCKET_PATH = "/api";
15 | public const int DEFAULT_WEBSERVER_PORT = 7842;
16 | public const int DEFAULT_WEBSOCKET_PORT = 7843;
17 | public static int webServerPort = 7842;
18 | public static int webSocketPort = 7843;
19 | public static DebugLevel debug = new DebugLevel();
20 | public static string Python2Path = "/usr/local/bin/python2";
21 |
22 | public static readonly string WEBTEMPLATE_PATH;
23 |
24 | private const string TEMPLATE_NAME = "AirConsole";
25 | private const string TEMPLATE_NAME_2020 = "AirConsole-2020";
26 | private const string TEMPLATE_NAME_U6 = "AirConsole-U6";
27 |
28 | public static readonly string[] TEMPLATE_NAMES = { TEMPLATE_NAME, TEMPLATE_NAME_2020, TEMPLATE_NAME_U6 };
29 |
30 | static Settings() {
31 | string templateName;
32 | #if UNITY_6000_0_OR_NEWER
33 | templateName = TEMPLATE_NAME_U6;
34 | #elif !UNITY_2020_1_OR_NEWER
35 | templateName = TEMPLATE_NAME;
36 | #else
37 | templateName = TEMPLATE_NAME_2020;
38 | #endif
39 | WEBTEMPLATE_PATH = $"/WebGLTemplates/{templateName}";
40 | }
41 |
42 |
43 |
44 | private static bool IsUnity6OrHigher() {
45 | return int.Parse(Application.unityVersion.Split('.')[0]) >= 6000;
46 | }
47 | }
48 | }
49 | #endif
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/Settings.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0d56b6d52294b2f448483fe8560ead25
3 | timeCreated: 1437761027
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/AirConsole/scripts/WebsocketListener.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2b10877b34da1724194f7525936498ca
3 | timeCreated: 1437574812
4 | licenseType: Store
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/Assets/Packager.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 23a7c504dcd8a4c3492d4d930b0273e4
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Packager/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8b322324a32a84bea83f848257819111
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Packager/Editor/Builder.cs:
--------------------------------------------------------------------------------
1 | using UnityEditor;
2 | using UnityEngine;
3 |
4 | namespace NDream.Unity
5 | {
6 | public class Builder
7 | {
8 | public static void BuildAndroid()
9 | {
10 | Debug.Log("Building Android");
11 | }
12 |
13 | public static void BuildWebGL(){
14 | Debug.Log("Building WebGL");
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/Assets/Packager/Editor/Builder.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 848d531a3e0b0458aa1b26f382317c77
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Packager/Editor/Packager.cs:
--------------------------------------------------------------------------------
1 | #if !DISABLE_AIRCONSOLE
2 | #region
3 | using NDream.AirConsole;
4 | using System.Diagnostics;
5 | using System.IO;
6 | using System.Linq;
7 | using UnityEditor;
8 | using UnityEngine;
9 | using Debug = UnityEngine.Debug;
10 | #endregion
11 |
12 | namespace NDream.Unity
13 | {
14 | public class Packager
15 | {
16 | [MenuItem("Tools/AirConsole/Package Plugin")]
17 | public static void Export()
18 | {
19 | Debug.ClearDeveloperConsole();
20 | string outputPath = Path.GetFullPath(Path.Combine("Builds", $"airconsole-unity-plugin-v{Settings.VERSION}.unitypackage"));
21 | Debug.Log($"Exporting to {outputPath}");
22 |
23 | string packageCache = Path.GetFullPath(Path.Combine(Application.dataPath, "..", "Library", "PackageCache"));
24 | string webviewPackagePath = Directory.GetDirectories(packageCache).FirstOrDefault(d => d.Contains("com.airconsole.webview"));
25 |
26 | if(!Directory.Exists(webviewPackagePath))
27 | {
28 | EditorUtility.DisplayDialog("Error", "Can not find airconsole webview package", "OK");
29 | Debug.LogError("Can not find airconsole webview package");
30 | return;
31 | }
32 |
33 | string targetPath = Path.GetFullPath(Path.Combine(Application.dataPath, "AirConsole", "unity-webview"));
34 | DeleteAssetDatabaseDirectory(targetPath);
35 | AssetDatabase.Refresh();
36 |
37 | EditorApplication.LockReloadAssemblies();
38 | Directory.Move(webviewPackagePath, targetPath);
39 | AssetDatabase.Refresh();
40 |
41 | AssetDatabase.ExportPackage(new[] { "Assets/AirConsole", "Assets/Plugins", "Assets/WebGLTemplates" },
42 | outputPath, ExportPackageOptions.Recurse | ExportPackageOptions.IncludeDependencies);
43 |
44 | Directory.Move(targetPath, webviewPackagePath);
45 | DeleteAssetDatabaseDirectory(targetPath);
46 | AssetDatabase.Refresh();
47 | EditorApplication.UnlockReloadAssemblies();
48 | Debug.ClearDeveloperConsole();
49 |
50 | DeleteOldUnityPackages(outputPath, Settings.VERSION);
51 |
52 | ProcessStartInfo startInfo = new ProcessStartInfo()
53 | {
54 | FileName = "git",
55 | Arguments = $"add {Path.GetFullPath(Path.Combine(Application.dataPath, "..", "Builds", "airconsole-unity-plugin-v2.*"))}",
56 | };
57 | Process proc = new Process()
58 | {
59 | StartInfo = startInfo,
60 | };
61 | if(proc.Start()) {
62 | proc.WaitForExit();
63 | }
64 | else {
65 | Debug.LogError("Failed to add package to git");
66 | }
67 |
68 | Application.OpenURL("file://" + Path.GetDirectoryName(Path.Combine(Application.dataPath, "..", outputPath)));
69 | }
70 |
71 | private static void DeleteAssetDatabaseDirectory(string targetPath) {
72 | if (Directory.Exists(targetPath)) {
73 | File.Delete(targetPath + ".meta");
74 | Directory.Delete(targetPath);
75 | }
76 | }
77 |
78 | private static void DeleteOldUnityPackages(string outputPath, string newVersion) {
79 | string[] files = Directory.GetFiles(Path.GetDirectoryName(outputPath), "airconsole-unity-plugin-*.*");
80 | foreach (string file in files) {
81 | if (!file.Contains(newVersion)) {
82 | File.Delete(file);
83 | }
84 | }
85 | }
86 | }
87 | }
88 | #endif
--------------------------------------------------------------------------------
/Assets/Packager/Editor/Packager.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: db5a80f6578ae475da86673f14a9ee51
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Plugins.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 81e22c16107d74489af3f73bb618d3d1
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Plugins/Android.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 071afac51acc040929b50751a1a3e9fb
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Plugins/Android/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Assets/Plugins/Android/AndroidManifest.xml.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3520f69b905ae43a9bdcda1ef95b5ce5
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7ab9eebe89fab4046b515eb974e6fc16
3 | folderAsset: yes
4 | timeCreated: 1435649412
5 | licenseType: Free
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7ec9666911a6d44a0a0485c8bd9829a9
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020/TemplateData.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d53f7b31e2f564e5fbad027a87c0e520
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020/TemplateData/loading-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/WebGLTemplates/AirConsole-2020/TemplateData/loading-screen.png
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020/TemplateData/loading-screen.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d5696b793203b44dfb24b50df7b58ef2
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020/airconsole-settings.js:
--------------------------------------------------------------------------------
1 | var AIRCONSOLE_TRANSLATION = true;
2 | var AIRCONSOLE_INACTIVE_PLAYERS_SILENCED = true;
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020/airconsole-settings.js.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: af88984e335c547afaeb9444273d2151
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020/airconsole-unity-plugin.js.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 33d913e4bc33f4477ba094d2520f3670
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
33 |
34 |
44 |
45 |
46 |
47 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
149 |
150 |
151 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020/index.html.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 68f3ca333f66e4a7ca4f680522fa1d3f
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020/rate-limiter.js.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3dc76f31ad9064d00ab9ac058a70dc5d
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/WebGLTemplates/AirConsole-2020/thumbnail.png
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-2020/thumbnail.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 19e4a60af483a4262b3b77decfa17a2d
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ed0b2919cafd34c9abb88ef76c9b098b
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6/TemplateData.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3a8dbc5fe6cc743b4b49f29bc9fe0e58
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6/TemplateData/loading-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/WebGLTemplates/AirConsole-U6/TemplateData/loading-screen.png
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6/TemplateData/loading-screen.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 92eeddf0b218243b29fca6fb0aa6ac29
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6/airconsole-settings.js:
--------------------------------------------------------------------------------
1 | var AIRCONSOLE_TRANSLATION = true;
2 | var AIRCONSOLE_INACTIVE_PLAYERS_SILENCED = true;
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6/airconsole-settings.js.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b63b835fd6ecf40dea8c11e1afe40ec6
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6/airconsole-unity-plugin.js.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a16d7320b9af34870a86261e76f12d2e
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
33 |
34 |
44 |
45 |
46 |
47 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
160 |
161 |
162 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6/index.html.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cdc39dd093dea4a30b1e891b3940e458
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6/rate-limiter.js.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e1847049f5ee449e8af3dc93beef68bc
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/WebGLTemplates/AirConsole-U6/thumbnail.png
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole-U6/thumbnail.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 502ab1cee0d254602937ff45e75bbe3a
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 301e36584c6e3ca40b65990524735899
3 | folderAsset: yes
4 | timeCreated: 1435649434
5 | licenseType: Store
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole/TemplateData.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cdb1db92fe1bd6941a0e2fd9c6958181
3 | folderAsset: yes
4 | timeCreated: 1491397767
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole/TemplateData/loading-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/WebGLTemplates/AirConsole/TemplateData/loading-screen.png
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole/TemplateData/loading-screen.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cb4d3dae26fb247e39f956219719e967
3 | timeCreated: 1505921670
4 | licenseType: Pro
5 | DefaultImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole/airconsole-settings.js:
--------------------------------------------------------------------------------
1 | var AIRCONSOLE_TRANSLATION = true;
2 | var AIRCONSOLE_INACTIVE_PLAYERS_SILENCED = true;
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole/airconsole-settings.js.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7afddeb18b0bd4e1496b1e4c90b615c6
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole/airconsole-unity-plugin.js.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: aee56ca70e202ec4aab95ea14f911f76
3 | timeCreated: 1440529949
4 | licenseType: Store
5 | DefaultImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
28 |
29 |
30 |
31 |
32 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole/index.html.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ee824ee7942893849b3f368bad6fb82e
3 | timeCreated: 1435649933
4 | licenseType: Store
5 | DefaultImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole/rate-limiter.js.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a394242111349431c998279762a00b29
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole/thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Assets/WebGLTemplates/AirConsole/thumbnail.png
--------------------------------------------------------------------------------
/Assets/WebGLTemplates/AirConsole/thumbnail.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b2ff086cd10d649ce8d2b99547a2c351
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Builds/airconsole-unity-plugin-v2.5.7.unitypackage:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AirConsole/airconsole-unity-plugin/72d71a80c71a60cbbb83b307f3ce9edc7285cff3/Builds/airconsole-unity-plugin-v2.5.7.unitypackage
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.airconsole.webview": "https://github.com/AirConsole/airconsole-unity-webview.git?path=/package#v1.0.1",
4 | "com.unity.ext.nunit": "2.0.5",
5 | "com.unity.ide.rider": "3.0.28",
6 | "com.unity.ide.vscode": "1.2.5",
7 | "com.unity.mobile.android-logcat": "1.3.2",
8 | "com.unity.test-framework": "1.4.4",
9 | "com.unity.textmeshpro": "2.1.6",
10 | "com.unity.ugui": "1.0.0",
11 | "com.unity.modules.ai": "1.0.0",
12 | "com.unity.modules.androidjni": "1.0.0",
13 | "com.unity.modules.animation": "1.0.0",
14 | "com.unity.modules.assetbundle": "1.0.0",
15 | "com.unity.modules.audio": "1.0.0",
16 | "com.unity.modules.cloth": "1.0.0",
17 | "com.unity.modules.director": "1.0.0",
18 | "com.unity.modules.imageconversion": "1.0.0",
19 | "com.unity.modules.imgui": "1.0.0",
20 | "com.unity.modules.jsonserialize": "1.0.0",
21 | "com.unity.modules.particlesystem": "1.0.0",
22 | "com.unity.modules.physics": "1.0.0",
23 | "com.unity.modules.physics2d": "1.0.0",
24 | "com.unity.modules.screencapture": "1.0.0",
25 | "com.unity.modules.terrain": "1.0.0",
26 | "com.unity.modules.terrainphysics": "1.0.0",
27 | "com.unity.modules.tilemap": "1.0.0",
28 | "com.unity.modules.ui": "1.0.0",
29 | "com.unity.modules.uielements": "1.0.0",
30 | "com.unity.modules.umbra": "1.0.0",
31 | "com.unity.modules.unityanalytics": "1.0.0",
32 | "com.unity.modules.unitywebrequest": "1.0.0",
33 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
34 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
35 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
36 | "com.unity.modules.unitywebrequestwww": "1.0.0",
37 | "com.unity.modules.vehicles": "1.0.0",
38 | "com.unity.modules.video": "1.0.0",
39 | "com.unity.modules.vr": "1.0.0",
40 | "com.unity.modules.wind": "1.0.0",
41 | "com.unity.modules.xr": "1.0.0"
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/ProjectSettings/AudioManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!11 &1
4 | AudioManager:
5 | m_ObjectHideFlags: 0
6 | m_Volume: 1
7 | Rolloff Scale: 1
8 | Doppler Factor: 1
9 | Default Speaker Mode: 2
10 | m_SampleRate: 0
11 | m_DSPBufferSize: 0
12 | m_VirtualVoiceCount: 512
13 | m_RealVoiceCount: 32
14 | m_DisableAudio: 0
15 |
--------------------------------------------------------------------------------
/ProjectSettings/ClusterInputManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!236 &1
4 | ClusterInputManager:
5 | m_ObjectHideFlags: 0
6 | m_Inputs: []
7 |
--------------------------------------------------------------------------------
/ProjectSettings/DynamicsManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!55 &1
4 | PhysicsManager:
5 | m_ObjectHideFlags: 0
6 | m_Gravity: {x: 0, y: -9.81000042, z: 0}
7 | m_DefaultMaterial: {fileID: 0}
8 | m_BounceThreshold: 2
9 | m_SleepThreshold: .00499999989
10 | m_DefaultContactOffset: .00999999978
11 | m_SolverIterationCount: 6
12 | m_RaycastsHitTriggers: 1
13 | m_EnableAdaptiveForce: 0
14 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
15 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorBuildSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1045 &1
4 | EditorBuildSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Scenes:
8 | - enabled: 0
9 | path: Assets/AirConsole/examples/basic/basic.unity
10 | guid: be2892f0848650f4fa6714ec6d9100bf
11 | - enabled: 0
12 | path: Assets/AirConsole/examples/platformer/platformer.unity
13 | guid: d1c6c76d1e441496eb198de3564ddb56
14 | m_configObjects: {}
15 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!159 &1
4 | EditorSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 9
7 | m_ExternalVersionControlSupport: Visible Meta Files
8 | m_SerializationMode: 2
9 | m_LineEndingsForNewScripts: 1
10 | m_DefaultBehaviorMode: 1
11 | m_PrefabRegularEnvironment: {fileID: 0}
12 | m_PrefabUIEnvironment: {fileID: 0}
13 | m_SpritePackerMode: 2
14 | m_SpritePackerPaddingPower: 1
15 | m_EtcTextureCompressorBehavior: 0
16 | m_EtcTextureFastCompressor: 2
17 | m_EtcTextureNormalCompressor: 2
18 | m_EtcTextureBestCompressor: 5
19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp;asmref
20 | m_ProjectGenerationRootNamespace:
21 | m_CollabEditorSettings:
22 | inProgressEnabled: 1
23 | m_EnableTextureStreamingInEditMode: 1
24 | m_EnableTextureStreamingInPlayMode: 1
25 | m_AsyncShaderCompilation: 1
26 | m_EnterPlayModeOptionsEnabled: 0
27 | m_EnterPlayModeOptions: 3
28 | m_ShowLightmapResolutionOverlay: 1
29 | m_UseLegacyProbeSampleCount: 1
30 | m_AssetPipelineMode: 1
31 | m_CacheServerMode: 0
32 | m_CacheServerEndpoint:
33 | m_CacheServerNamespacePrefix: default
34 | m_CacheServerEnableDownload: 1
35 | m_CacheServerEnableUpload: 1
36 |
--------------------------------------------------------------------------------
/ProjectSettings/GraphicsSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!30 &1
4 | GraphicsSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 13
7 | m_Deferred:
8 | m_Mode: 1
9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
10 | m_DeferredReflections:
11 | m_Mode: 1
12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
13 | m_ScreenSpaceShadows:
14 | m_Mode: 1
15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
16 | m_LegacyDeferred:
17 | m_Mode: 1
18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
19 | m_DepthNormals:
20 | m_Mode: 1
21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
22 | m_MotionVectors:
23 | m_Mode: 1
24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
25 | m_LightHalo:
26 | m_Mode: 1
27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
28 | m_LensFlare:
29 | m_Mode: 1
30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
31 | m_AlwaysIncludedShaders:
32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
36 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
37 | - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0}
38 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
39 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
40 | - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0}
41 | - {fileID: 16003, guid: 0000000000000000f000000000000000, type: 0}
42 | m_PreloadedShaders: []
43 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
44 | type: 0}
45 | m_CustomRenderPipeline: {fileID: 0}
46 | m_TransparencySortMode: 0
47 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
48 | m_DefaultRenderingPath: 1
49 | m_DefaultMobileRenderingPath: 1
50 | m_TierSettings: []
51 | m_LightmapStripping: 0
52 | m_FogStripping: 0
53 | m_InstancingStripping: 0
54 | m_LightmapKeepPlain: 1
55 | m_LightmapKeepDirCombined: 1
56 | m_LightmapKeepDynamicPlain: 1
57 | m_LightmapKeepDynamicDirCombined: 1
58 | m_LightmapKeepShadowMask: 1
59 | m_LightmapKeepSubtractive: 1
60 | m_FogKeepLinear: 1
61 | m_FogKeepExp: 1
62 | m_FogKeepExp2: 1
63 | m_AlbedoSwatchInfos: []
64 | m_LightsUseLinearIntensity: 0
65 | m_LightsUseColorTemperature: 0
66 | m_LogWhenShaderIsCompiled: 0
67 | m_AllowEnlightenSupportForUpgradedProject: 1
68 |
--------------------------------------------------------------------------------
/ProjectSettings/MemorySettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!387306366 &1
4 | MemorySettings:
5 | m_ObjectHideFlags: 0
6 | m_EditorMemorySettings:
7 | m_MainAllocatorBlockSize: -1
8 | m_ThreadAllocatorBlockSize: -1
9 | m_MainGfxBlockSize: -1
10 | m_ThreadGfxBlockSize: -1
11 | m_CacheBlockSize: -1
12 | m_TypetreeBlockSize: -1
13 | m_ProfilerBlockSize: -1
14 | m_ProfilerEditorBlockSize: -1
15 | m_BucketAllocatorGranularity: -1
16 | m_BucketAllocatorBucketsCount: -1
17 | m_BucketAllocatorBlockSize: -1
18 | m_BucketAllocatorBlockCount: -1
19 | m_ProfilerBucketAllocatorGranularity: -1
20 | m_ProfilerBucketAllocatorBucketsCount: -1
21 | m_ProfilerBucketAllocatorBlockSize: -1
22 | m_ProfilerBucketAllocatorBlockCount: -1
23 | m_TempAllocatorSizeMain: -1
24 | m_JobTempAllocatorBlockSize: -1
25 | m_BackgroundJobTempAllocatorBlockSize: -1
26 | m_JobTempAllocatorReducedBlockSize: -1
27 | m_TempAllocatorSizeGIBakingWorker: -1
28 | m_TempAllocatorSizeNavMeshWorker: -1
29 | m_TempAllocatorSizeAudioWorker: -1
30 | m_TempAllocatorSizeCloudWorker: -1
31 | m_TempAllocatorSizeGfx: -1
32 | m_TempAllocatorSizeJobWorker: -1
33 | m_TempAllocatorSizeBackgroundWorker: -1
34 | m_TempAllocatorSizePreloadManager: -1
35 | m_PlatformMemorySettings: {}
36 |
--------------------------------------------------------------------------------
/ProjectSettings/NavMeshAreas.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!126 &1
4 | NavMeshAreas:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | areas:
8 | - name: Walkable
9 | cost: 1
10 | - name: Not Walkable
11 | cost: 1
12 | - name: Jump
13 | cost: 2
14 | - name:
15 | cost: 1
16 | - name:
17 | cost: 1
18 | - name:
19 | cost: 1
20 | - name:
21 | cost: 1
22 | - name:
23 | cost: 1
24 | - name:
25 | cost: 1
26 | - name:
27 | cost: 1
28 | - name:
29 | cost: 1
30 | - name:
31 | cost: 1
32 | - name:
33 | cost: 1
34 | - name:
35 | cost: 1
36 | - name:
37 | cost: 1
38 | - name:
39 | cost: 1
40 | - name:
41 | cost: 1
42 | - name:
43 | cost: 1
44 | - name:
45 | cost: 1
46 | - name:
47 | cost: 1
48 | - name:
49 | cost: 1
50 | - name:
51 | cost: 1
52 | - name:
53 | cost: 1
54 | - name:
55 | cost: 1
56 | - name:
57 | cost: 1
58 | - name:
59 | cost: 1
60 | - name:
61 | cost: 1
62 | - name:
63 | cost: 1
64 | - name:
65 | cost: 1
66 | - name:
67 | cost: 1
68 | - name:
69 | cost: 1
70 | - name:
71 | cost: 1
72 |
--------------------------------------------------------------------------------
/ProjectSettings/NetworkManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!149 &1
4 | NetworkManager:
5 | m_ObjectHideFlags: 0
6 | m_DebugLevel: 0
7 | m_Sendrate: 15
8 | m_AssetToPrefab: {}
9 |
--------------------------------------------------------------------------------
/ProjectSettings/PackageManagerSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &1
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 61
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0}
13 | m_Name:
14 | m_EditorClassIdentifier:
15 | m_ScopedRegistriesSettingsExpanded: 1
16 | oneTimeWarningShown: 0
17 | m_Registries:
18 | - m_Id: main
19 | m_Name:
20 | m_Url: https://packages.unity.com
21 | m_Scopes: []
22 | m_IsDefault: 1
23 | m_UserSelectedRegistryName:
24 | m_UserAddingNewScopedRegistry: 0
25 | m_RegistryInfoDraft:
26 | m_ErrorMessage:
27 | m_Original:
28 | m_Id:
29 | m_Name:
30 | m_Url:
31 | m_Scopes: []
32 | m_IsDefault: 0
33 | m_Modified: 0
34 | m_Name:
35 | m_Url:
36 | m_Scopes:
37 | -
38 | m_SelectedScopeIndex: 0
39 |
--------------------------------------------------------------------------------
/ProjectSettings/Physics2DSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!19 &1
4 | Physics2DSettings:
5 | m_ObjectHideFlags: 0
6 | m_Gravity: {x: 0, y: -9.81000042}
7 | m_DefaultMaterial: {fileID: 0}
8 | m_VelocityIterations: 8
9 | m_PositionIterations: 3
10 | m_VelocityThreshold: 1
11 | m_MaxLinearCorrection: .200000003
12 | m_MaxAngularCorrection: 8
13 | m_MaxTranslationSpeed: 100
14 | m_MaxRotationSpeed: 360
15 | m_MinPenetrationForPenalty: .00999999978
16 | m_BaumgarteScale: .200000003
17 | m_BaumgarteTimeOfImpactScale: .75
18 | m_TimeToSleep: .5
19 | m_LinearSleepTolerance: .00999999978
20 | m_AngularSleepTolerance: 2
21 | m_RaycastsHitTriggers: 1
22 | m_RaycastsStartInColliders: 1
23 | m_ChangeStopsCallbacks: 0
24 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
25 |
--------------------------------------------------------------------------------
/ProjectSettings/PresetManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1386491679 &1
4 | PresetManager:
5 | m_ObjectHideFlags: 0
6 | m_DefaultList: []
7 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2019.4.40f1
2 | m_EditorVersionWithRevision: 2019.4.40f1 (ffc62b691db5)
3 |
--------------------------------------------------------------------------------
/ProjectSettings/QualitySettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!47 &1
4 | QualitySettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 5
7 | m_CurrentQuality: 5
8 | m_QualitySettings:
9 | - serializedVersion: 2
10 | name: Fastest
11 | pixelLightCount: 0
12 | shadows: 0
13 | shadowResolution: 0
14 | shadowProjection: 1
15 | shadowCascades: 1
16 | shadowDistance: 15
17 | shadowCascade2Split: .333333343
18 | shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
19 | blendWeights: 1
20 | textureQuality: 1
21 | anisotropicTextures: 0
22 | antiAliasing: 0
23 | softParticles: 0
24 | softVegetation: 0
25 | realtimeReflectionProbes: 0
26 | billboardsFaceCameraPosition: 0
27 | vSyncCount: 0
28 | lodBias: .300000012
29 | maximumLODLevel: 0
30 | particleRaycastBudget: 4
31 | excludedTargetPlatforms: []
32 | - serializedVersion: 2
33 | name: Fast
34 | pixelLightCount: 0
35 | shadows: 0
36 | shadowResolution: 0
37 | shadowProjection: 1
38 | shadowCascades: 1
39 | shadowDistance: 20
40 | shadowCascade2Split: .333333343
41 | shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
42 | blendWeights: 2
43 | textureQuality: 0
44 | anisotropicTextures: 0
45 | antiAliasing: 0
46 | softParticles: 0
47 | softVegetation: 0
48 | realtimeReflectionProbes: 0
49 | billboardsFaceCameraPosition: 0
50 | vSyncCount: 0
51 | lodBias: .400000006
52 | maximumLODLevel: 0
53 | particleRaycastBudget: 16
54 | excludedTargetPlatforms: []
55 | - serializedVersion: 2
56 | name: Simple
57 | pixelLightCount: 1
58 | shadows: 1
59 | shadowResolution: 0
60 | shadowProjection: 1
61 | shadowCascades: 1
62 | shadowDistance: 20
63 | shadowCascade2Split: .333333343
64 | shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
65 | blendWeights: 2
66 | textureQuality: 0
67 | anisotropicTextures: 1
68 | antiAliasing: 0
69 | softParticles: 0
70 | softVegetation: 0
71 | realtimeReflectionProbes: 0
72 | billboardsFaceCameraPosition: 0
73 | vSyncCount: 0
74 | lodBias: .699999988
75 | maximumLODLevel: 0
76 | particleRaycastBudget: 64
77 | excludedTargetPlatforms: []
78 | - serializedVersion: 2
79 | name: Good
80 | pixelLightCount: 2
81 | shadows: 2
82 | shadowResolution: 1
83 | shadowProjection: 1
84 | shadowCascades: 2
85 | shadowDistance: 40
86 | shadowCascade2Split: .333333343
87 | shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
88 | blendWeights: 2
89 | textureQuality: 0
90 | anisotropicTextures: 1
91 | antiAliasing: 0
92 | softParticles: 0
93 | softVegetation: 1
94 | realtimeReflectionProbes: 1
95 | billboardsFaceCameraPosition: 1
96 | vSyncCount: 1
97 | lodBias: 1
98 | maximumLODLevel: 0
99 | particleRaycastBudget: 256
100 | excludedTargetPlatforms: []
101 | - serializedVersion: 2
102 | name: Beautiful
103 | pixelLightCount: 3
104 | shadows: 2
105 | shadowResolution: 2
106 | shadowProjection: 1
107 | shadowCascades: 2
108 | shadowDistance: 70
109 | shadowCascade2Split: .333333343
110 | shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
111 | blendWeights: 4
112 | textureQuality: 0
113 | anisotropicTextures: 2
114 | antiAliasing: 2
115 | softParticles: 1
116 | softVegetation: 1
117 | realtimeReflectionProbes: 1
118 | billboardsFaceCameraPosition: 1
119 | vSyncCount: 1
120 | lodBias: 1.5
121 | maximumLODLevel: 0
122 | particleRaycastBudget: 1024
123 | excludedTargetPlatforms: []
124 | - serializedVersion: 2
125 | name: Fantastic
126 | pixelLightCount: 4
127 | shadows: 2
128 | shadowResolution: 2
129 | shadowProjection: 1
130 | shadowCascades: 4
131 | shadowDistance: 150
132 | shadowCascade2Split: .333333343
133 | shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
134 | blendWeights: 4
135 | textureQuality: 0
136 | anisotropicTextures: 2
137 | antiAliasing: 2
138 | softParticles: 1
139 | softVegetation: 1
140 | realtimeReflectionProbes: 1
141 | billboardsFaceCameraPosition: 1
142 | vSyncCount: 1
143 | lodBias: 2
144 | maximumLODLevel: 0
145 | particleRaycastBudget: 4096
146 | excludedTargetPlatforms: []
147 | m_PerPlatformDefaultQuality:
148 | Android: 2
149 | BlackBerry: 2
150 | GLES Emulation: 5
151 | PS3: 5
152 | PS4: 5
153 | PSM: 5
154 | PSP2: 5
155 | Samsung TV: 2
156 | Standalone: 5
157 | Tizen: 2
158 | WP8: 5
159 | Web: 5
160 | WebGL: 3
161 | Windows Store Apps: 5
162 | XBOX360: 5
163 | XboxOne: 5
164 | iPhone: 2
165 |
--------------------------------------------------------------------------------
/ProjectSettings/SceneTemplateSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "templatePinStates": [],
3 | "dependencyTypeInfos": [
4 | {
5 | "userAdded": false,
6 | "type": "UnityEngine.AnimationClip",
7 | "defaultInstantiationMode": 0
8 | },
9 | {
10 | "userAdded": false,
11 | "type": "UnityEditor.Animations.AnimatorController",
12 | "defaultInstantiationMode": 0
13 | },
14 | {
15 | "userAdded": false,
16 | "type": "UnityEngine.AnimatorOverrideController",
17 | "defaultInstantiationMode": 0
18 | },
19 | {
20 | "userAdded": false,
21 | "type": "UnityEditor.Audio.AudioMixerController",
22 | "defaultInstantiationMode": 0
23 | },
24 | {
25 | "userAdded": false,
26 | "type": "UnityEngine.ComputeShader",
27 | "defaultInstantiationMode": 1
28 | },
29 | {
30 | "userAdded": false,
31 | "type": "UnityEngine.Cubemap",
32 | "defaultInstantiationMode": 0
33 | },
34 | {
35 | "userAdded": false,
36 | "type": "UnityEngine.GameObject",
37 | "defaultInstantiationMode": 0
38 | },
39 | {
40 | "userAdded": false,
41 | "type": "UnityEditor.LightingDataAsset",
42 | "defaultInstantiationMode": 0
43 | },
44 | {
45 | "userAdded": false,
46 | "type": "UnityEngine.LightingSettings",
47 | "defaultInstantiationMode": 0
48 | },
49 | {
50 | "userAdded": false,
51 | "type": "UnityEngine.Material",
52 | "defaultInstantiationMode": 0
53 | },
54 | {
55 | "userAdded": false,
56 | "type": "UnityEditor.MonoScript",
57 | "defaultInstantiationMode": 1
58 | },
59 | {
60 | "userAdded": false,
61 | "type": "UnityEngine.PhysicMaterial",
62 | "defaultInstantiationMode": 0
63 | },
64 | {
65 | "userAdded": false,
66 | "type": "UnityEngine.PhysicsMaterial2D",
67 | "defaultInstantiationMode": 0
68 | },
69 | {
70 | "userAdded": false,
71 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
72 | "defaultInstantiationMode": 0
73 | },
74 | {
75 | "userAdded": false,
76 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
77 | "defaultInstantiationMode": 0
78 | },
79 | {
80 | "userAdded": false,
81 | "type": "UnityEngine.Rendering.VolumeProfile",
82 | "defaultInstantiationMode": 0
83 | },
84 | {
85 | "userAdded": false,
86 | "type": "UnityEditor.SceneAsset",
87 | "defaultInstantiationMode": 1
88 | },
89 | {
90 | "userAdded": false,
91 | "type": "UnityEngine.Shader",
92 | "defaultInstantiationMode": 1
93 | },
94 | {
95 | "userAdded": false,
96 | "type": "UnityEngine.ShaderVariantCollection",
97 | "defaultInstantiationMode": 1
98 | },
99 | {
100 | "userAdded": false,
101 | "type": "UnityEngine.Texture",
102 | "defaultInstantiationMode": 0
103 | },
104 | {
105 | "userAdded": false,
106 | "type": "UnityEngine.Texture2D",
107 | "defaultInstantiationMode": 0
108 | },
109 | {
110 | "userAdded": false,
111 | "type": "UnityEngine.Timeline.TimelineAsset",
112 | "defaultInstantiationMode": 0
113 | }
114 | ],
115 | "defaultDependencyTypeInfo": {
116 | "userAdded": false,
117 | "type": "",
118 | "defaultInstantiationMode": 1
119 | },
120 | "newSceneOverride": 0
121 | }
--------------------------------------------------------------------------------
/ProjectSettings/TagManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!78 &1
4 | TagManager:
5 | serializedVersion: 2
6 | tags:
7 | - PlatformSphere
8 | layers:
9 | - Default
10 | - TransparentFX
11 | - Ignore Raycast
12 | -
13 | - Water
14 | - UI
15 | -
16 | -
17 | -
18 | -
19 | -
20 | -
21 | -
22 | -
23 | -
24 | -
25 | -
26 | -
27 | -
28 | -
29 | -
30 | -
31 | -
32 | -
33 | -
34 | -
35 | -
36 | -
37 | -
38 | -
39 | -
40 | -
41 | m_SortingLayers:
42 | - name: Default
43 | uniqueID: 0
44 | locked: 0
45 |
--------------------------------------------------------------------------------
/ProjectSettings/TimeManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!5 &1
4 | TimeManager:
5 | m_ObjectHideFlags: 0
6 | Fixed Timestep: .0199999996
7 | Maximum Allowed Timestep: .333333343
8 | m_TimeScale: 1
9 |
--------------------------------------------------------------------------------
/ProjectSettings/UnityConnectSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!310 &1
4 | UnityConnectSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 1
7 | m_Enabled: 0
8 | m_TestMode: 0
9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com
12 | m_TestInitMode: 0
13 | CrashReportingSettings:
14 | m_EventUrl: https://perf-events.cloud.unity3d.com
15 | m_Enabled: 0
16 | m_LogBufferSize: 10
17 | m_CaptureEditorExceptions: 1
18 | UnityPurchasingSettings:
19 | m_Enabled: 0
20 | m_TestMode: 0
21 | UnityAnalyticsSettings:
22 | m_Enabled: 0
23 | m_TestMode: 0
24 | m_InitializeOnStartup: 1
25 | UnityAdsSettings:
26 | m_Enabled: 0
27 | m_InitializeOnStartup: 1
28 | m_TestMode: 0
29 | m_IosGameId:
30 | m_AndroidGameId:
31 | m_GameIds: {}
32 | m_GameId:
33 | PerformanceReportingSettings:
34 | m_Enabled: 0
35 |
--------------------------------------------------------------------------------
/ProjectSettings/VFXManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!937362698 &1
4 | VFXManager:
5 | m_ObjectHideFlags: 0
6 | m_IndirectShader: {fileID: 0}
7 | m_CopyBufferShader: {fileID: 0}
8 | m_SortShader: {fileID: 0}
9 | m_RenderPipeSettingsPath:
10 | m_FixedTimeStep: 0.016666668
11 | m_MaxDeltaTime: 0.05
12 |
--------------------------------------------------------------------------------
/ProjectSettings/VersionControlSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!890905787 &1
4 | VersionControlSettings:
5 | m_ObjectHideFlags: 0
6 | m_Mode: Visible Meta Files
7 | m_CollabEditorSettings:
8 | inProgressEnabled: 1
9 |
--------------------------------------------------------------------------------
/ProjectSettings/XRSettings.asset:
--------------------------------------------------------------------------------
1 | {
2 | "m_SettingKeys": [
3 | "VR Device Disabled",
4 | "VR Device User Alert"
5 | ],
6 | "m_SettingValues": [
7 | "False",
8 | "False"
9 | ]
10 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Info
2 |
3 | The AirConsole-Unity-Plugin is a C# wrapper for the AirConsole Javascript API.
4 | AirConsole provides a simple to use Javascript API for game developers to build their own local multiplayer realtime browser games.
5 | You can find the Javascript API documentation here:
6 |
7 | IMPORTANT: The plugin comes with an embedded webserver / websocket-server for the communication between the AirConsole backend and the Unity-Editor.
8 | You don't need to install any other webserver or services.
9 |
10 | # Changelog
11 |
12 | Please see [CHANGELOG.md](CHANGELOG.md) for the full changelog.
13 |
14 | # Upgrade your installation
15 |
16 | The upgrade instructions can be found in [Upgrade_Plugin_Version.md](Assets/AirConsole/Upgrade_Plugin_Version.md)
17 |
18 | # Documentation
19 |
20 | All install instructions and examples are documented in the file "Documentation_1.7.0.pdf" inside this folder.
21 | There are more examples on the website:
22 |
23 | # Platforms
24 |
25 | AirConsole supports WebGL and AndroidTV as targets. To make use of this plugin, you need to make sure to switch your target to either WebGL or Android.
26 |
27 | # Support
28 |
29 | If you need support, please visit:
30 |
--------------------------------------------------------------------------------