Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
MDPro3
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
36
Issues
36
List
Boards
Labels
Service Desk
Milestones
Merge Requests
5
Merge Requests
5
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赤子奈落
MDPro3
Commits
c9f527c2
Commit
c9f527c2
authored
Dec 14, 2025
by
SherryChaos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix cutin cache bug
parent
b4fac7ca
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
57 additions
and
111 deletions
+57
-111
Assets/Scripts/MDPro3/Helper/ABLoader.cs
Assets/Scripts/MDPro3/Helper/ABLoader.cs
+45
-101
Assets/Scripts/MDPro3/Program.cs
Assets/Scripts/MDPro3/Program.cs
+0
-1
Assets/Scripts/MDPro3/Servant/CutinViewer.cs
Assets/Scripts/MDPro3/Servant/CutinViewer.cs
+2
-3
ProjectSettings/ProjectSettings.asset
ProjectSettings/ProjectSettings.asset
+8
-1
ProjectSettings/QualitySettings.asset
ProjectSettings/QualitySettings.asset
+2
-5
No files found.
Assets/Scripts/MDPro3/Helper/ABLoader.cs
View file @
c9f527c2
using
Cysharp.Threading.Tasks
;
using
Cysharp.Threading.Tasks
;
using
Spine.Unity
;
using
Spine.Unity
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.IO
;
using
System.IO
;
using
System.Linq
;
using
System.Linq
;
...
@@ -18,9 +19,7 @@ namespace MDPro3
...
@@ -18,9 +19,7 @@ namespace MDPro3
public
static
Dictionary
<
string
,
GameObject
>
cachedAB
=
new
();
public
static
Dictionary
<
string
,
GameObject
>
cachedAB
=
new
();
public
static
Dictionary
<
string
,
GameObject
>
cachedABFolder
=
new
();
public
static
Dictionary
<
string
,
GameObject
>
cachedABFolder
=
new
();
public
static
Dictionary
<
string
,
Material
>
cachedPMat
=
new
();
public
static
Dictionary
<
string
,
Material
>
cachedPMat
=
new
();
private
static
readonly
List
<
GameObject
>
tempGameObjects
=
new
();
private
static
readonly
SemaphoreSlim
protectorSemaphoreSlim
=
new
(
1
,
1
);
private
static
SemaphoreSlim
protectorSemaphoreSlim
=
new
(
1
,
1
);
public
static
async
UniTask
<
AssetBundle
>
CacheFromFileAsync
(
string
path
)
public
static
async
UniTask
<
AssetBundle
>
CacheFromFileAsync
(
string
path
)
{
{
...
@@ -31,7 +30,7 @@ namespace MDPro3
...
@@ -31,7 +30,7 @@ namespace MDPro3
{
{
if
(
cachedAB
.
TryGetValue
(
path
,
out
var
returnValue
))
if
(
cachedAB
.
TryGetValue
(
path
,
out
var
returnValue
))
{
{
if
(
instantiate
&&
returnValue
!=
null
)
if
(
instantiate
)
return
UnityEngine
.
Object
.
Instantiate
(
returnValue
);
return
UnityEngine
.
Object
.
Instantiate
(
returnValue
);
else
else
return
returnValue
;
return
returnValue
;
...
@@ -39,19 +38,15 @@ namespace MDPro3
...
@@ -39,19 +38,15 @@ namespace MDPro3
AssetBundle
ab
;
AssetBundle
ab
;
ab
=
AssetBundle
.
LoadFromFile
(
Program
.
root
+
path
);
ab
=
AssetBundle
.
LoadFromFile
(
Program
.
root
+
path
);
var
prefab
s
=
ab
.
LoadAllAssets
();
var
asset
s
=
ab
.
LoadAllAssets
();
foreach
(
UnityEngine
.
Object
prefab
in
prefab
s
)
foreach
(
UnityEngine
.
Object
asset
in
asset
s
)
{
{
if
(
typeof
(
GameObject
).
IsInstanceOfType
(
prefab
))
if
(
typeof
(
GameObject
).
IsInstanceOfType
(
asset
))
{
{
if
(
cache
)
if
(
cache
)
{
if
(!
cachedAB
.
TryAdd
(
path
,
asset
as
GameObject
))
if
(!
cachedAB
.
TryAdd
(
path
,
prefab
as
GameObject
))
Debug
.
LogError
(
$"Failed to cache
{
path
}
"
);
Debug
.
LogWarning
(
$"Failed to cache
{
path
}
"
);
returnValue
=
asset
as
GameObject
;
}
else
tempGameObjects
.
Add
(
prefab
as
GameObject
);
returnValue
=
prefab
as
GameObject
;
break
;
break
;
}
}
}
}
...
@@ -74,20 +69,18 @@ namespace MDPro3
...
@@ -74,20 +69,18 @@ namespace MDPro3
}
}
AssetBundle
ab
=
await
AssetBundle
.
LoadFromFileAsync
(
Program
.
root
+
path
);
AssetBundle
ab
=
await
AssetBundle
.
LoadFromFileAsync
(
Program
.
root
+
path
);
var
prefab
s
=
ab
.
LoadAllAssets
();
var
asset
s
=
ab
.
LoadAllAssets
();
foreach
(
UnityEngine
.
Object
prefab
in
prefab
s
)
foreach
(
UnityEngine
.
Object
asset
in
asset
s
)
{
{
if
(
typeof
(
GameObject
).
IsInstanceOfType
(
prefab
))
if
(
typeof
(
GameObject
).
IsInstanceOfType
(
asset
))
{
{
if
(
cache
)
if
(
cache
)
{
{
if
(!
cachedAB
.
TryAdd
(
path
,
prefab
as
GameObject
))
if
(!
cachedAB
.
TryAdd
(
path
,
asset
as
GameObject
))
Debug
.
LogWarning
(
$"Failed to cache
{
path
}
"
);
Debug
.
LogWarning
(
$"Failed to cache
{
path
}
"
);
}
}
else
returnValue
=
asset
as
GameObject
;
tempGameObjects
.
Add
(
prefab
as
GameObject
);
returnValue
=
prefab
as
GameObject
;
//break;
//break;
}
}
}
}
...
@@ -113,7 +106,6 @@ namespace MDPro3
...
@@ -113,7 +106,6 @@ namespace MDPro3
#if !UNITY_EDITOR && (UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN)
#if !UNITY_EDITOR && (UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN)
dir
=
new
DirectoryInfo
(
Path
.
Combine
(
Application
.
dataPath
,
Program
.
root
+
path
));
dir
=
new
DirectoryInfo
(
Path
.
Combine
(
Application
.
dataPath
,
Program
.
root
+
path
));
#endif
#endif
FileInfo
[]
files
=
dir
.
GetFiles
(
"*"
);
FileInfo
[]
files
=
dir
.
GetFiles
(
"*"
);
List
<
AssetBundle
>
bundles
=
new
();
List
<
AssetBundle
>
bundles
=
new
();
for
(
int
i
=
0
;
i
<
files
.
Length
;
i
++)
for
(
int
i
=
0
;
i
<
files
.
Length
;
i
++)
...
@@ -137,8 +129,6 @@ namespace MDPro3
...
@@ -137,8 +129,6 @@ namespace MDPro3
bundle
.
Unload
(
false
);
bundle
.
Unload
(
false
);
if
(
cache
&&
returnValue
!=
null
)
if
(
cache
&&
returnValue
!=
null
)
cachedABFolder
.
TryAdd
(
path
,
returnValue
);
cachedABFolder
.
TryAdd
(
path
,
returnValue
);
else
if
(!
cache
)
tempGameObjects
.
AddRange
(
loadedPrefabs
);
if
(
returnValue
==
null
)
if
(
returnValue
==
null
)
Debug
.
Log
(
$"LoadFromFolderAsync get null:
{
path
}
"
);
Debug
.
Log
(
$"LoadFromFolderAsync get null:
{
path
}
"
);
...
@@ -190,7 +180,8 @@ namespace MDPro3
...
@@ -190,7 +180,8 @@ namespace MDPro3
return
go
;
return
go
;
}
}
public
static
async
UniTask
<
GameObject
>
LoadFromFolderAsync
<
T
>(
string
path
,
bool
cache
,
bool
instantiate
)
where
T
:
Component
public
static
async
UniTask
<
GameObject
>
LoadFromFolderAsync
<
T
>(
string
path
,
bool
cache
,
bool
instantiate
,
Action
<
GameObject
,
List
<
UnityEngine
.
Object
>>
processEvent
=
null
)
where
T
:
Component
{
{
if
(
cachedABFolder
.
TryGetValue
(
path
,
out
var
returnValue
))
if
(
cachedABFolder
.
TryGetValue
(
path
,
out
var
returnValue
))
{
{
...
@@ -210,46 +201,50 @@ namespace MDPro3
...
@@ -210,46 +201,50 @@ namespace MDPro3
for
(
int
i
=
0
;
i
<
files
.
Length
;
i
++)
for
(
int
i
=
0
;
i
<
files
.
Length
;
i
++)
bundles
.
Add
(
await
AssetBundle
.
LoadFromFileAsync
(
files
[
i
].
FullName
));
bundles
.
Add
(
await
AssetBundle
.
LoadFromFileAsync
(
files
[
i
].
FullName
));
var
loadedPrefabs
=
new
List
<
Game
Object
>();
var
allAssets
=
new
List
<
UnityEngine
.
Object
>();
foreach
(
AssetBundle
bundle
in
bundles
)
foreach
(
AssetBundle
bundle
in
bundles
)
{
{
var
prefabs
=
bundle
.
LoadAllAssets
();
var
assets
=
bundle
.
LoadAllAssets
();
for
(
int
j
=
0
;
j
<
prefabs
.
Length
;
j
++)
allAssets
.
AddRange
(
assets
.
ToList
());
if
(
typeof
(
GameObject
).
IsInstanceOfType
(
prefabs
[
j
]))
loadedPrefabs
.
Add
(
prefabs
[
j
]
as
GameObject
);
}
}
foreach
(
var
prefab
in
loadedPrefabs
)
var
allPrefabs
=
new
List
<
GameObject
>();
{
foreach
(
var
asset
in
allAssets
)
if
(
prefab
.
TryGetComponent
<
T
>(
out
_
))
if
(
typeof
(
GameObject
).
IsInstanceOfType
(
asset
))
allPrefabs
.
Add
(
asset
as
GameObject
);
foreach
(
var
prefab
in
allPrefabs
)
if
(
prefab
.
TryGetComponent
<
T
>(
out
_
))
{
{
returnValue
=
prefab
;
returnValue
=
prefab
;
break
;
break
;
}
}
}
foreach
(
AssetBundle
bundle
in
bundles
)
foreach
(
AssetBundle
bundle
in
bundles
)
bundle
.
Unload
(
false
);
bundle
.
Unload
(
false
);
if
(
returnValue
!=
null
)
processEvent
?.
Invoke
(
returnValue
,
allAssets
);
if
(
cache
&&
returnValue
!=
null
)
if
(
cache
&&
returnValue
!=
null
)
cachedABFolder
.
TryAdd
(
path
,
returnValue
);
cachedABFolder
.
TryAdd
(
path
,
returnValue
);
else
if
(!
cache
)
tempGameObjects
.
AddRange
(
loadedPrefabs
);
if
(
returnValue
==
null
)
if
(
returnValue
==
null
)
Debug
.
Log
(
$"
LoadFromFolderAsync get null
:
{
path
}
"
);
Debug
.
Log
(
$"
[ABLoader]: LoadFromFolderAsync get no GameObject
:
{
path
}
"
);
if
(
instantiate
)
if
(
instantiate
)
{
{
if
(
returnValue
!=
null
)
if
(
returnValue
!=
null
)
return
UnityEngine
.
Object
.
Instantiate
(
returnValue
);
return
UnityEngine
.
Object
.
Instantiate
(
returnValue
);
else
else
return
UnityEngine
.
Object
.
Instantiate
(
loaded
Prefabs
[
0
]);
return
UnityEngine
.
Object
.
Instantiate
(
all
Prefabs
[
0
]);
}
}
else
else
{
{
if
(
returnValue
!=
null
)
if
(
returnValue
!=
null
)
return
returnValue
;
return
returnValue
;
else
else
return
loaded
Prefabs
[
0
];
return
all
Prefabs
[
0
];
}
}
}
}
...
@@ -286,57 +281,21 @@ namespace MDPro3
...
@@ -286,57 +281,21 @@ namespace MDPro3
return
returnValue
;
return
returnValue
;
}
}
public
static
async
UniTask
<
GameObject
>
LoadMonsterCutinAsync
(
int
code
)
public
static
async
UniTask
<
GameObject
>
LoadMonsterCutinAsync
(
int
code
,
bool
cache
)
{
{
GameObject
returnValue
=
null
;
var
path
=
$"MonsterCutin/
{
code
}
"
;
var
path
=
$"MonsterCutin/
{
code
}
"
;
DirectoryInfo
dir
=
new
(
Program
.
root
+
path
);
return
await
LoadFromFolderAsync
<
PlayableDirector
>(
path
,
cache
,
true
,
FindAndSetSkeletonDataAsset
);
#if !UNITY_EDITOR && (UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN)
dir
=
new
DirectoryInfo
(
Path
.
Combine
(
Application
.
dataPath
,
Program
.
root
+
path
));
#endif
FileInfo
[]
files
=
dir
.
GetFiles
(
"*"
);
List
<
AssetBundle
>
bundles
=
new
();
for
(
int
i
=
0
;
i
<
files
.
Length
;
i
++)
bundles
.
Add
(
await
AssetBundle
.
LoadFromFileAsync
(
files
[
i
].
FullName
));
var
loadedPrefabs
=
new
List
<
GameObject
>();
foreach
(
AssetBundle
bundle
in
bundles
)
{
var
prefabs
=
bundle
.
LoadAllAssets
();
for
(
int
j
=
0
;
j
<
prefabs
.
Length
;
j
++)
if
(
typeof
(
GameObject
).
IsInstanceOfType
(
prefabs
[
j
]))
loadedPrefabs
.
Add
(
prefabs
[
j
]
as
GameObject
);
}
}
foreach
(
var
prefab
in
loadedPrefabs
)
private
static
void
FindAndSetSkeletonDataAsset
(
GameObject
prefab
,
List
<
UnityEngine
.
Object
>
assets
)
{
if
(
prefab
.
TryGetComponent
<
PlayableDirector
>(
out
_
))
{
returnValue
=
prefab
;
break
;
}
}
if
(
returnValue
==
null
)
{
{
Debug
.
LogError
(
"[ABLoader]: Monster Cutin load null."
);
return
null
;
}
//召唤兽 梅尔卡巴[75286622]在安卓端和iOS端的Spine动画资源丢失,
//召唤兽 梅尔卡巴[75286622]在安卓端和iOS端的Spine动画资源丢失,
//临时修复方案为从已加载的AssetBundle中寻找SkeletonDataAsset并赋值。
//临时修复方案为从已加载的AssetBundle中寻找SkeletonDataAsset并赋值。
if
(
returnValue
.
transform
.
GetChild
(
0
).
GetChild
(
0
).
TryGetComponent
<
SkeletonAnimation
>(
out
var
sa
))
if
(
prefab
.
transform
.
GetChild
(
0
).
GetChild
(
0
).
TryGetComponent
<
SkeletonAnimation
>(
out
var
sa
))
{
{
if
(
sa
.
skeletonDataAsset
==
null
)
if
(
sa
.
skeletonDataAsset
==
null
)
{
{
var
allAssets
=
new
List
<
Object
>();
foreach
(
var
asset
in
assets
)
foreach
(
AssetBundle
bundle
in
bundles
)
{
var
assets
=
bundle
.
LoadAllAssets
();
allAssets
.
AddRange
(
assets
.
ToList
());
}
foreach
(
var
asset
in
allAssets
)
if
(
asset
is
SkeletonDataAsset
sda
)
if
(
asset
is
SkeletonDataAsset
sda
)
{
{
sa
.
skeletonDataAsset
=
sda
;
sa
.
skeletonDataAsset
=
sda
;
...
@@ -344,12 +303,6 @@ namespace MDPro3
...
@@ -344,12 +303,6 @@ namespace MDPro3
}
}
}
}
}
}
foreach
(
AssetBundle
bundle
in
bundles
)
bundle
.
Unload
(
false
);
var
instance
=
UnityEngine
.
Object
.
Instantiate
(
returnValue
);
return
instance
;
}
}
public
static
async
UniTask
<
Material
>
LoadProtectorMaterial
(
string
code
,
CancellationToken
token
)
public
static
async
UniTask
<
Material
>
LoadProtectorMaterial
(
string
code
,
CancellationToken
token
)
...
@@ -507,15 +460,7 @@ namespace MDPro3
...
@@ -507,15 +460,7 @@ namespace MDPro3
return
returnValue
;
return
returnValue
;
}
}
public
static
void
ClearTemp
()
#
region
Built
-
in
MasterDuel
Assets
{
foreach
(
var
go
in
tempGameObjects
)
UnityEngine
.
Object
.
Destroy
(
go
);
tempGameObjects
.
Clear
();
}
#
region
MasterDuel
public
static
bool
mdCached
;
public
static
bool
mdCached
;
public
static
float
mdCachedProgress
;
public
static
float
mdCachedProgress
;
...
@@ -550,7 +495,6 @@ namespace MDPro3
...
@@ -550,7 +495,6 @@ namespace MDPro3
mdDuelCached
=
true
;
mdDuelCached
=
true
;
}
}
public
static
GameObject
LoadMasterDuelGameObject
(
string
oName
)
public
static
GameObject
LoadMasterDuelGameObject
(
string
oName
)
{
{
if
(
mdBundleDuel
==
null
)
if
(
mdBundleDuel
==
null
)
...
@@ -565,7 +509,7 @@ namespace MDPro3
...
@@ -565,7 +509,7 @@ namespace MDPro3
Debug
.
LogError
(
$"MasterDuel AssetBundle [Duel] does not contain [
{
oName
}
]!"
);
Debug
.
LogError
(
$"MasterDuel AssetBundle [Duel] does not contain [
{
oName
}
]!"
);
return
null
;
return
null
;
}
}
return
Object
.
Instantiate
(
prefab
);
return
UnityEngine
.
Object
.
Instantiate
(
prefab
);
}
}
public
static
GameObject
LoadMasterDuelOutDuelObject
(
string
oName
)
public
static
GameObject
LoadMasterDuelOutDuelObject
(
string
oName
)
...
@@ -582,7 +526,7 @@ namespace MDPro3
...
@@ -582,7 +526,7 @@ namespace MDPro3
Debug
.
LogError
(
$"MasterDuel AssetBundle [OutDuel] does not contain [
{
oName
}
]!"
);
Debug
.
LogError
(
$"MasterDuel AssetBundle [OutDuel] does not contain [
{
oName
}
]!"
);
return
null
;
return
null
;
}
}
return
Object
.
Instantiate
(
prefab
);
return
UnityEngine
.
Object
.
Instantiate
(
prefab
);
}
}
public
static
Material
LoadMasterDuelMaterial
(
string
mName
)
public
static
Material
LoadMasterDuelMaterial
(
string
mName
)
...
@@ -598,7 +542,7 @@ namespace MDPro3
...
@@ -598,7 +542,7 @@ namespace MDPro3
Debug
.
LogError
(
$"MasterDuel AssetBundle [Materials] does not contain material [
{
mName
}
]!"
);
Debug
.
LogError
(
$"MasterDuel AssetBundle [Materials] does not contain material [
{
mName
}
]!"
);
return
null
;
return
null
;
}
}
return
Object
.
Instantiate
(
mat
);
return
UnityEngine
.
Object
.
Instantiate
(
mat
);
}
}
public
static
Sprite
LoadMasterDuelSprite
(
string
sName
)
public
static
Sprite
LoadMasterDuelSprite
(
string
sName
)
...
...
Assets/Scripts/MDPro3/Program.cs
View file @
c9f527c2
...
@@ -344,7 +344,6 @@ namespace MDPro3
...
@@ -344,7 +344,6 @@ namespace MDPro3
private
async
UniTask
UnloadUnusedAssetsAsync
()
private
async
UniTask
UnloadUnusedAssetsAsync
()
{
{
ABLoader
.
ClearTemp
();
await
Resources
.
UnloadUnusedAssets
();
await
Resources
.
UnloadUnusedAssets
();
}
}
...
...
Assets/Scripts/MDPro3/Servant/CutinViewer.cs
View file @
c9f527c2
...
@@ -37,7 +37,6 @@ namespace MDPro3.Servant
...
@@ -37,7 +37,6 @@ namespace MDPro3.Servant
private
CancellationTokenSource
cts
;
private
CancellationTokenSource
cts
;
#
region
Servant
#
region
Servant
public
override
int
Depth
=>
1
;
public
override
int
Depth
=>
1
;
protected
override
bool
ShowLine
=>
false
;
protected
override
bool
ShowLine
=>
false
;
...
@@ -65,7 +64,7 @@ namespace MDPro3.Servant
...
@@ -65,7 +64,7 @@ namespace MDPro3.Servant
protected
override
void
AfterHidingEvent
()
protected
override
void
AfterHidingEvent
()
{
{
Resources
.
UnloadUnusedAssets
();
Program
.
instance
.
UnloadUnusedAssets
();
}
}
public
override
void
PerFrameFunction
()
public
override
void
PerFrameFunction
()
...
@@ -230,7 +229,7 @@ namespace MDPro3.Servant
...
@@ -230,7 +229,7 @@ namespace MDPro3.Servant
bool
diy
=
false
;
bool
diy
=
false
;
if
(
codes
.
Contains
(
code
))
if
(
codes
.
Contains
(
code
))
//cutin = await ABLoader.LoadFromFolderAsync<PlayableDirector>("MonsterCutin/" + code, false, true);
//cutin = await ABLoader.LoadFromFolderAsync<PlayableDirector>("MonsterCutin/" + code, false, true);
cutin
=
await
ABLoader
.
LoadMonsterCutinAsync
(
code
);
cutin
=
await
ABLoader
.
LoadMonsterCutinAsync
(
code
,
false
);
else
else
{
{
cutin
=
await
ABLoader
.
LoadFromFileAsync
(
"MonsterCutin2/"
+
code
,
false
,
true
);
cutin
=
await
ABLoader
.
LoadFromFileAsync
(
"MonsterCutin2/"
+
code
,
false
,
true
);
...
...
ProjectSettings/ProjectSettings.asset
View file @
c9f527c2
...
@@ -982,7 +982,14 @@ PlayerSettings:
...
@@ -982,7 +982,14 @@ PlayerSettings:
windowsGamepadBackendHint
:
0
windowsGamepadBackendHint
:
0
cloudProjectId
:
cloudProjectId
:
framebufferDepthMemorylessMode
:
0
framebufferDepthMemorylessMode
:
0
qualitySettingsNames
:
[]
qualitySettingsNames
:
-
Very Low
-
Low
-
Medium
-
High
-
Very High
-
Ultra
-
UI
projectName
:
projectName
:
organizationId
:
organizationId
:
cloudEnabled
:
0
cloudEnabled
:
0
...
...
ProjectSettings/QualitySettings.asset
View file @
c9f527c2
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
QualitySettings
:
QualitySettings
:
m_ObjectHideFlags
:
0
m_ObjectHideFlags
:
0
serializedVersion
:
5
serializedVersion
:
5
m_CurrentQuality
:
5
m_CurrentQuality
:
0
m_QualitySettings
:
m_QualitySettings
:
-
serializedVersion
:
4
-
serializedVersion
:
4
name
:
Very Low
name
:
Very Low
...
@@ -371,7 +371,4 @@ QualitySettings:
...
@@ -371,7 +371,4 @@ QualitySettings:
terrainMaxTrees
:
50
terrainMaxTrees
:
50
excludedTargetPlatforms
:
[]
excludedTargetPlatforms
:
[]
m_TextureMipmapLimitGroupNames
:
[]
m_TextureMipmapLimitGroupNames
:
[]
m_PerPlatformDefaultQuality
:
m_PerPlatformDefaultQuality
:
{}
Android
:
0
Standalone
:
0
iPhone
:
0
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment