Skip to content

Commit edeba3c

Browse files
authored
feat: consolidate simplification (#50)
BREAKING CHANGE: The 4.x update consolidates the changes in the 3.x and simplifies a few more steps of the usage experience. It completely removes the ISceneLoader implementations and adds a static MySceneManager class so you don't have to manually control its lifecycle. Refer to the upgrade guide at https://scene-loader.mygamedevtools.com/docs/upgrades/from-3-to-4 for more details.
1 parent c6081ca commit edeba3c

File tree

1,035 files changed

+100748
-3526
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,035 files changed

+100748
-3526
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behavior
3+
labels: ["bug"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
## Bug Report
9+
Please provide as much detail as possible to help us identify and fix the issue.
10+
- type: input
11+
id: summary
12+
attributes:
13+
label: Summary
14+
description: A brief summary of the bug
15+
placeholder: "Scene transition freezes..."
16+
validations:
17+
required: true
18+
- type: textarea
19+
id: steps
20+
attributes:
21+
label: Steps to Reproduce
22+
description: Steps to reproduce the issue
23+
placeholder: |
24+
1. Load scene A
25+
2. Transition to scene B
26+
3. Observe the freeze
27+
validations:
28+
required: true
29+
- type: textarea
30+
id: expected
31+
attributes:
32+
label: Expected Behavior
33+
description: What did you expect to happen?
34+
validations:
35+
required: true
36+
- type: textarea
37+
id: actual
38+
attributes:
39+
label: Actual Behavior
40+
description: What actually happened?
41+
validations:
42+
required: true
43+
- type: input
44+
id: version
45+
attributes:
46+
label: Package Version
47+
description: The version of the package you are using
48+
placeholder: "e.g., 3.1.0"
49+
validations:
50+
required: true
51+
- type: input
52+
id: editorversion
53+
attributes:
54+
label: Unity Editor Version
55+
description: The version of the Unity Editor you are using
56+
placeholder: "e.g., 6000.0.40f1"
57+
validations:
58+
required: true
59+
- type: textarea
60+
id: logs
61+
attributes:
62+
label: Logs
63+
description: Please attach any relevant logs or errors
64+
render: shell
65+
- type: checkboxes
66+
id: terms
67+
attributes:
68+
label: Acknowledgement
69+
options:
70+
- label: I have searched the existing issues to avoid duplicates
71+
required: true
+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Feature Request
2+
description: Suggest an idea or enhancement
3+
labels: ["enhancement"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
## Feature Request
9+
Have a feature idea? Let us know what you'd like to see in My Scene Manager!
10+
- type: input
11+
id: summary
12+
attributes:
13+
label: Summary
14+
description: A brief summary of the feature
15+
placeholder: "Add support for async scene loading with progress callbacks"
16+
validations:
17+
required: true
18+
- type: textarea
19+
id: problem
20+
attributes:
21+
label: Problem or Use Case
22+
description: What problem would this feature solve? How would it be useful?
23+
validations:
24+
required: true
25+
- type: textarea
26+
id: proposal
27+
attributes:
28+
label: Proposed Solution
29+
description: Describe how you'd like the feature to work
30+
validations:
31+
required: true
32+
- type: checkboxes
33+
id: terms
34+
attributes:
35+
label: Acknowledgement
36+
options:
37+
- label: I have searched the existing issues to ensure this feature hasn't been requested already
38+
required: true

.github/ISSUE_TEMPLATE/question.yml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Question
2+
description: Ask a question or request help
3+
labels: ["question"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
## Question or Support Request
9+
Need help or have a question about using My Scene Manager? Let us know!
10+
- type: textarea
11+
id: question
12+
attributes:
13+
label: Your Question
14+
description: Clearly describe your question or the help you need
15+
validations:
16+
required: true
17+
- type: input
18+
id: version
19+
attributes:
20+
label: Package Version
21+
description: The version of the package you are using
22+
placeholder: "e.g., 3.1.0"
23+
validations:
24+
required: true
25+
- type: input
26+
id: editorversion
27+
attributes:
28+
label: Unity Editor Version
29+
description: The version of the Unity Editor you are using
30+
placeholder: "e.g., 6000.0.40f1"
31+
validations:
32+
required: true
33+
- type: checkboxes
34+
id: terms
35+
attributes:
36+
label: Acknowledgement
37+
options:
38+
- label: I have searched the documentation and existing issues
39+
required: true

.github/workflows/release-pre.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,5 @@ jobs:
1414
with:
1515
blockPullRequestRelease: false
1616
blockReleaseCommit: true
17-
secrets:
18-
githubToken: ${{ secrets.GH_TOKEN }}
17+
secrets: inherit
1918

.github/workflows/release-template.yml

+72-5
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@ on:
1313
required: false
1414
type: boolean
1515
secrets:
16-
githubToken:
16+
GH_TOKEN:
17+
required: true
18+
UNITY_LICENSE:
19+
required: true
20+
UNITY_EMAIL:
21+
required: true
22+
UNITY_PASSWORD:
1723
required: true
1824

1925
jobs:
@@ -28,19 +34,22 @@ jobs:
2834
with:
2935
fetch-depth: 0
3036
persist-credentials: false
37+
3138
# Removes the git plugin from semantic release so it doesn't generate a new commit
3239
- name: ✂️ Disable semantic release commit
3340
if: ${{ inputs.blockReleaseCommit == true }}
3441
run: |
3542
cat .releaserc.json | jq 'del(.plugins[] | select(type == "array" and .[0] == "@semantic-release/git"))' .releaserc.json > .releaserc.json.tmp && mv .releaserc.json.tmp .releaserc.json
43+
3644
- name: 🚀 Semantic Release
3745
id: release
3846
uses: cycjimmy/semantic-release-action@v4
3947
with:
4048
dry_run: ${{ inputs.dryRun }}
4149
ci: ${{ inputs.blockPullRequestRelease }}
4250
env:
43-
GH_TOKEN: ${{ secrets.githubToken }}
51+
GH_TOKEN: ${{ secrets.GH_TOKEN }}
52+
4453
- name: 📄 Summary
4554
run: |
4655
if [ '${{ steps.release.outputs.new_release_published }}' == 'true' ] && [ '${{ inputs.dryRun }}' == 'false' ]; then
@@ -60,32 +69,90 @@ jobs:
6069
uses: actions/checkout@v4
6170
with:
6271
fetch-depth: 0
72+
6373
- name: 📤 Extract Path
6474
id: extract-path
6575
run: |
6676
PACKAGE_PATH=$(jq -r '.plugins[] | select(type == "array" and .[0] == "@semantic-release/npm") | .[1].pkgRoot' .releaserc.json)
6777
echo "PACKAGE_PATH=$PACKAGE_PATH" >> $GITHUB_ENV
78+
6879
- name: ✏️ Update package.json
6980
run: |
7081
jq '.version = "${{ env.releaseVersion }}"' $PACKAGE_PATH/package.json > package.json.tmp && mv package.json.tmp $PACKAGE_PATH/package.json
82+
7183
- name: 📦 Package UPM Branch
7284
id: package_upm
7385
run: |
7486
git config --global user.name 'semantic-release-bot'
7587
git config --global user.email '[email protected]'
76-
git commit -am "update package.json"
88+
git commit --amend -a --no-edit
7789
git branch -d upm &> /dev/null || echo upm branch not found
7890
git subtree split -P "$PACKAGE_PATH" -b upm
7991
git checkout upm
8092
if [[ -d "Samples" ]]; then
8193
git mv Samples Samples~
8294
rm -f Samples.meta
83-
git commit -am "fix: Samples => Samples~"
95+
git commit --amend -a --no-edit
8496
fi
8597
git push -f -u origin upm
98+
8699
- name: 🏷️ Create UPM Tag
87100
run: |
88101
git tag $TAG upm
89102
git push origin --tags
90103
env:
91-
TAG: upm/${{ env.releaseVersion }}
104+
TAG: upm/${{ env.releaseVersion }}
105+
106+
export-unity-package:
107+
runs-on: ubuntu-latest
108+
needs: 'semantic-release'
109+
if: ${{ needs.semantic-release.outputs.new_release_published == 'true' && inputs.dryRun == false }}
110+
env:
111+
releaseVersion: ${{ needs.semantic-release.outputs.new_release_version }}
112+
steps:
113+
- name: 📂 Checkout
114+
uses: actions/checkout@v4
115+
with:
116+
fetch-depth: 0
117+
118+
- name: 📤 Extract Path
119+
id: extract-path
120+
run: |
121+
PACKAGE_PATH=$(jq -r '.plugins[] | select(type == "array" and .[0] == "@semantic-release/npm") | .[1].pkgRoot' .releaserc.json)
122+
echo "PACKAGE_PATH=$PACKAGE_PATH" >> $GITHUB_ENV
123+
124+
- name: ✏️ Update package.json
125+
run: |
126+
jq '.version = "${{ env.releaseVersion }}"' $PACKAGE_PATH/package.json > package.json.tmp && mv package.json.tmp $PACKAGE_PATH/package.json
127+
128+
- name: 🔄 Rename Samples Folder
129+
run: |
130+
if [[ -d "$PACKAGE_PATH/Samples" ]]; then
131+
mv "$PACKAGE_PATH/Samples" "$PACKAGE_PATH/Samples~"
132+
rm -f "$PACKAGE_PATH/Samples.meta"
133+
fi
134+
135+
- name: 🗃️ Cache Library
136+
uses: actions/cache@v4
137+
with:
138+
path: Library
139+
key: Library-StandaloneLinux64
140+
restore-keys: Library-
141+
142+
- name: 📦 Export Unity Package
143+
uses: game-ci/unity-builder@v4
144+
with:
145+
targetPlatform: StandaloneLinux64
146+
buildMethod: PackageExporter.ExportPackage
147+
projectPath: "."
148+
allowDirtyBuild: true
149+
env:
150+
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
151+
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
152+
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
153+
154+
- name: 🗂️ Upload Unity Package Artifact
155+
uses: actions/upload-artifact@v4
156+
with:
157+
name: com.mygamedevtools.scene-loader-${{ env.releaseVersion }}
158+
path: "./*.unitypackage"

.github/workflows/release.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,4 @@ jobs:
1010
create-release:
1111
name: Release
1212
uses: ./.github/workflows/release-template.yml
13-
secrets:
14-
githubToken: ${{ secrets.GH_TOKEN }}
13+
secrets: inherit

.gitignore

+5-1
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,8 @@ crashlytics-build.properties
7878

7979
# Temporary auto-generated Android Assets
8080
[Aa]ssets/[Ss]treamingAssets/aa.meta
81-
[Aa]ssets/[Ss]treamingAssets/aa/*
81+
[Aa]ssets/[Ss]treamingAssets/aa/*
82+
83+
# Website
84+
.docusaurus
85+
node_modules/

Assets/ScriptTemplates.meta renamed to Assets/Rendering.meta

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)