forked from cgvr/DeltaVR
npc characters have separate trigger enter and exit areas
This commit is contained in:
@@ -19,7 +19,6 @@
|
|||||||
* shape scanneris prinditud objektid mõnikord ei kao ära kui config success
|
* shape scanneris prinditud objektid mõnikord ei kao ära kui config success
|
||||||
* archery range:
|
* archery range:
|
||||||
* mute/unmute ikooni värv mitte must (muted kollane, roheline)
|
* mute/unmute ikooni värv mitte must (muted kollane, roheline)
|
||||||
* spawn point kaugemale
|
|
||||||
* mikrofon peaks lõpetama protsessimise ka siis kui mängija läheb ära mikri juurest
|
* mikrofon peaks lõpetama protsessimise ka siis kui mängija läheb ära mikri juurest
|
||||||
* mikril ontriggerenter collider peaks olema väiksem kui ontriggerexit collider
|
* mikril ontriggerenter collider peaks olema väiksem kui ontriggerexit collider
|
||||||
* võiks jääda kordama viimast instruktsiooni, kui mängija ei progressi edasi
|
* võiks jääda kordama viimast instruktsiooni, kui mängija ei progressi edasi
|
||||||
@@ -29,9 +28,7 @@
|
|||||||
* cafe:
|
* cafe:
|
||||||
* npc võiks olla keeratud sinu poole juba kaugelt
|
* npc võiks olla keeratud sinu poole juba kaugelt
|
||||||
* toit võiks tulla kandiku peal/sees
|
* toit võiks tulla kandiku peal/sees
|
||||||
* spawn point panna
|
|
||||||
* npc character:
|
* npc character:
|
||||||
* ontriggerenter collider peaks olema väiksem kui ontriggerexit collider
|
|
||||||
* klaas on näha temast eespool
|
* klaas on näha temast eespool
|
||||||
* voicelines: list listidest, mille hulgast saab valida
|
* voicelines: list listidest, mille hulgast saab valida
|
||||||
|
|
||||||
|
|||||||
@@ -91,7 +91,6 @@ GameObject:
|
|||||||
- component: {fileID: 6105090838799004608}
|
- component: {fileID: 6105090838799004608}
|
||||||
- component: {fileID: 5789790698403274331}
|
- component: {fileID: 5789790698403274331}
|
||||||
- component: {fileID: 7699707098595015193}
|
- component: {fileID: 7699707098595015193}
|
||||||
- component: {fileID: 7315184541177211783}
|
|
||||||
- component: {fileID: 1413215456818694348}
|
- component: {fileID: 1413215456818694348}
|
||||||
- component: {fileID: 483845010817450077}
|
- component: {fileID: 483845010817450077}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
@@ -166,7 +165,7 @@ MonoBehaviour:
|
|||||||
m_FallbackScreenDPI: 96
|
m_FallbackScreenDPI: 96
|
||||||
m_DefaultSpriteDPI: 96
|
m_DefaultSpriteDPI: 96
|
||||||
m_DynamicPixelsPerUnit: 1
|
m_DynamicPixelsPerUnit: 1
|
||||||
m_PresetInfoIsWorld: 1
|
m_PresetInfoIsWorld: 0
|
||||||
--- !u!114 &6105090838799004608
|
--- !u!114 &6105090838799004608
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -196,6 +195,8 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: ea1b6453c1ef8e24d921a6dbaa549eba, type: 3}
|
m_Script: {fileID: 11500000, guid: ea1b6453c1ef8e24d921a6dbaa549eba, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
mouth: {fileID: 5759406807219530703}
|
||||||
|
turnSpeed: 5
|
||||||
voicelinesFolder: CharacterVoicelines
|
voicelinesFolder: CharacterVoicelines
|
||||||
characterSpecificFolder:
|
characterSpecificFolder:
|
||||||
voiceLineKeys:
|
voiceLineKeys:
|
||||||
@@ -203,13 +204,21 @@ MonoBehaviour:
|
|||||||
- Alien/Madis_Mic_Speak1
|
- Alien/Madis_Mic_Speak1
|
||||||
- Alien/Madis_Button_Press2
|
- Alien/Madis_Button_Press2
|
||||||
-
|
-
|
||||||
mouth: {fileID: 5759406807219530703}
|
|
||||||
minScaleY: 1
|
minScaleY: 1
|
||||||
maxScaleY: 9.7
|
maxScaleY: 9.7
|
||||||
gain: 60
|
gain: 60
|
||||||
attack: 0.6
|
attack: 0.6
|
||||||
release: 0.2
|
release: 0.2
|
||||||
inverted: 1
|
inverted: 1
|
||||||
|
questMarker: {fileID: 0}
|
||||||
|
microphoneStand: {fileID: 0}
|
||||||
|
microphoneStandQuestMarkerPoint: {fileID: 0}
|
||||||
|
imageGenerationButton: {fileID: 0}
|
||||||
|
modelGenerationButton: {fileID: 0}
|
||||||
|
imageDisplay: {fileID: 0}
|
||||||
|
modelDisplay: {fileID: 0}
|
||||||
|
modelDisplaySize: 0.75
|
||||||
|
startTargetQuestMarkerPoint: {fileID: 0}
|
||||||
--- !u!114 &7699707098595015193
|
--- !u!114 &7699707098595015193
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -234,27 +243,6 @@ MonoBehaviour:
|
|||||||
OcclusionLayer:
|
OcclusionLayer:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 0
|
m_Bits: 0
|
||||||
--- !u!65 &7315184541177211783
|
|
||||||
BoxCollider:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4663194936290788516}
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_IncludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_ExcludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_LayerOverridePriority: 0
|
|
||||||
m_IsTrigger: 1
|
|
||||||
m_ProvidesContacts: 0
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 3
|
|
||||||
m_Size: {x: 7.5, y: 2, z: 7.5}
|
|
||||||
m_Center: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &1413215456818694348
|
--- !u!114 &1413215456818694348
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@@ -96,6 +96,12 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 96a5bc0230ea8fe41b253c653699fecc, type: 3}
|
m_Script: {fileID: 11500000, guid: 96a5bc0230ea8fe41b253c653699fecc, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
pen: {fileID: 0}
|
||||||
|
minDown: 0.2
|
||||||
|
maxDown: 0.6
|
||||||
|
minDur: 0.04
|
||||||
|
maxDur: 0.1
|
||||||
|
upFraction: 0.35
|
||||||
--- !u!1 &1758614216652057599
|
--- !u!1 &1758614216652057599
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -187,7 +193,6 @@ GameObject:
|
|||||||
- component: {fileID: 6105090838799004608}
|
- component: {fileID: 6105090838799004608}
|
||||||
- component: {fileID: 2850739244050060128}
|
- component: {fileID: 2850739244050060128}
|
||||||
- component: {fileID: 7699707098595015193}
|
- component: {fileID: 7699707098595015193}
|
||||||
- component: {fileID: 7980494176537648463}
|
|
||||||
- component: {fileID: 1413215456818694348}
|
- component: {fileID: 1413215456818694348}
|
||||||
- component: {fileID: 483845010817450077}
|
- component: {fileID: 483845010817450077}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
@@ -264,7 +269,7 @@ MonoBehaviour:
|
|||||||
m_FallbackScreenDPI: 96
|
m_FallbackScreenDPI: 96
|
||||||
m_DefaultSpriteDPI: 96
|
m_DefaultSpriteDPI: 96
|
||||||
m_DynamicPixelsPerUnit: 1
|
m_DynamicPixelsPerUnit: 1
|
||||||
m_PresetInfoIsWorld: 1
|
m_PresetInfoIsWorld: 0
|
||||||
--- !u!114 &6105090838799004608
|
--- !u!114 &6105090838799004608
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -314,7 +319,7 @@ MonoBehaviour:
|
|||||||
fmodWhisperBridge: {fileID: 0}
|
fmodWhisperBridge: {fileID: 0}
|
||||||
notepad: {fileID: 4428142794029565387}
|
notepad: {fileID: 4428142794029565387}
|
||||||
notepadText: {fileID: 1672365637701508529}
|
notepadText: {fileID: 1672365637701508529}
|
||||||
pen: {fileID: 1094134314776274198}
|
pen: {fileID: 8182716950090654063}
|
||||||
backRoom: {fileID: 0}
|
backRoom: {fileID: 0}
|
||||||
plate: {fileID: 0}
|
plate: {fileID: 0}
|
||||||
backRoomMovingTime: 5
|
backRoomMovingTime: 5
|
||||||
@@ -344,27 +349,6 @@ MonoBehaviour:
|
|||||||
OcclusionLayer:
|
OcclusionLayer:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 0
|
m_Bits: 0
|
||||||
--- !u!65 &7980494176537648463
|
|
||||||
BoxCollider:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4663194936290788516}
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_IncludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_ExcludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_LayerOverridePriority: 0
|
|
||||||
m_IsTrigger: 1
|
|
||||||
m_ProvidesContacts: 0
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 3
|
|
||||||
m_Size: {x: 3, y: 2, z: 3}
|
|
||||||
m_Center: {x: 0, y: 0.25, z: 0}
|
|
||||||
--- !u!114 &1413215456818694348
|
--- !u!114 &1413215456818694348
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -391,7 +375,7 @@ MonoBehaviour:
|
|||||||
NetworkObserver: {fileID: 0}
|
NetworkObserver: {fileID: 0}
|
||||||
<PrefabId>k__BackingField: 0
|
<PrefabId>k__BackingField: 0
|
||||||
<SpawnableCollectionId>k__BackingField: 0
|
<SpawnableCollectionId>k__BackingField: 0
|
||||||
_scenePathHash: 353480863
|
_scenePathHash: 0
|
||||||
<SceneId>k__BackingField: 0
|
<SceneId>k__BackingField: 0
|
||||||
<AssetPathHash>k__BackingField: 836791613782540943
|
<AssetPathHash>k__BackingField: 836791613782540943
|
||||||
_sceneNetworkObjects:
|
_sceneNetworkObjects:
|
||||||
|
|||||||
@@ -0,0 +1,70 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &1234853364713064365
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4454773052242920378}
|
||||||
|
- component: {fileID: 6394222637539549817}
|
||||||
|
- component: {fileID: 3767251192208736515}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: NPCTriggerArea
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &4454773052242920378
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1234853364713064365}
|
||||||
|
m_LocalRotation: {x: -0, y: 0.12863638, z: -0, w: 0.9916918}
|
||||||
|
m_LocalPosition: {x: -0.244, y: -0.6930001, z: 0.646}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: -1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 14.782, z: 0}
|
||||||
|
--- !u!65 &6394222637539549817
|
||||||
|
BoxCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1234853364713064365}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Size: {x: 3.5, y: 2, z: 4}
|
||||||
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &3767251192208736515
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1234853364713064365}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 7e0b023cc6a72a94d98cc0b4de447614, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
npcController: {fileID: 0}
|
||||||
|
isEnter: 1
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 86116dd27a3864545a9d34efb9181d1e
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -91,7 +91,6 @@ GameObject:
|
|||||||
- component: {fileID: 6105090838799004608}
|
- component: {fileID: 6105090838799004608}
|
||||||
- component: {fileID: 7699707098595015193}
|
- component: {fileID: 7699707098595015193}
|
||||||
- component: {fileID: 1653195237934660084}
|
- component: {fileID: 1653195237934660084}
|
||||||
- component: {fileID: 7980494176537648463}
|
|
||||||
- component: {fileID: 1413215456818694348}
|
- component: {fileID: 1413215456818694348}
|
||||||
- component: {fileID: 483845010817450077}
|
- component: {fileID: 483845010817450077}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
@@ -231,29 +230,13 @@ MonoBehaviour:
|
|||||||
attack: 0.6
|
attack: 0.6
|
||||||
release: 0.2
|
release: 0.2
|
||||||
inverted: 0
|
inverted: 0
|
||||||
fmodWhisperBridge: {fileID: 0}
|
questMarker: {fileID: 0}
|
||||||
ignorePlayerCollisionLayer: 2
|
radio: {fileID: 0}
|
||||||
--- !u!65 &7980494176537648463
|
computerKeyboardKey: {fileID: 0}
|
||||||
BoxCollider:
|
computerPrinter: {fileID: 0}
|
||||||
m_ObjectHideFlags: 0
|
printerInsertionHole: {fileID: 0}
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
shapeScanner: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
radioAmount: 1
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4663194936290788516}
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_IncludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_ExcludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_LayerOverridePriority: 0
|
|
||||||
m_IsTrigger: 1
|
|
||||||
m_ProvidesContacts: 0
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 3
|
|
||||||
m_Size: {x: 5, y: 1, z: 5}
|
|
||||||
m_Center: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &1413215456818694348
|
--- !u!114 &1413215456818694348
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -278,7 +261,7 @@ MonoBehaviour:
|
|||||||
_initializeOrder: 0
|
_initializeOrder: 0
|
||||||
_defaultDespawnType: 0
|
_defaultDespawnType: 0
|
||||||
NetworkObserver: {fileID: 0}
|
NetworkObserver: {fileID: 0}
|
||||||
<PrefabId>k__BackingField: 0
|
<PrefabId>k__BackingField: 5
|
||||||
<SpawnableCollectionId>k__BackingField: 0
|
<SpawnableCollectionId>k__BackingField: 0
|
||||||
_scenePathHash: 0
|
_scenePathHash: 0
|
||||||
<SceneId>k__BackingField: 0
|
<SceneId>k__BackingField: 0
|
||||||
|
|||||||
Binary file not shown.
@@ -121,27 +121,19 @@ public abstract class NPCController : MonoBehaviour
|
|||||||
currentVoicelineEvent.release();
|
currentVoicelineEvent.release();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void PlayerApproach(Transform player) {
|
||||||
private void OnTriggerEnter(Collider other)
|
playerTransform = player;
|
||||||
{
|
OnPlayerApproach();
|
||||||
if (other.gameObject.tag == "Player Head")
|
|
||||||
{
|
|
||||||
playerTransform = other.transform;
|
|
||||||
OnPlayerApproach();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void OnPlayerApproach() {}
|
public void PlayerLeave()
|
||||||
|
|
||||||
private void OnTriggerExit(Collider other)
|
|
||||||
{
|
{
|
||||||
if (other.gameObject.tag == "Player Head")
|
playerTransform = null;
|
||||||
{
|
OnPlayerLeave();
|
||||||
playerTransform = null;
|
|
||||||
OnPlayerLeave();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected virtual void OnPlayerApproach() { }
|
||||||
|
|
||||||
protected virtual void OnPlayerLeave() {}
|
protected virtual void OnPlayerLeave() {}
|
||||||
|
|
||||||
public void SpeakVoiceLine(int voiceLineId, GameObject emitter = null, float radioAmount = 0f)
|
public void SpeakVoiceLine(int voiceLineId, GameObject emitter = null, float radioAmount = 0f)
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class NPCTriggerArea : MonoBehaviour
|
||||||
|
{
|
||||||
|
public NPCController npcController;
|
||||||
|
public bool isEnter;
|
||||||
|
|
||||||
|
// Start is called before the first frame update
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnTriggerEnter(Collider other)
|
||||||
|
{
|
||||||
|
if (isEnter && other.gameObject.tag == "Player Head")
|
||||||
|
{
|
||||||
|
|
||||||
|
npcController.PlayerApproach(other.transform);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnTriggerExit(Collider other)
|
||||||
|
{
|
||||||
|
if (!isEnter && other.gameObject.tag == "Player Head")
|
||||||
|
{
|
||||||
|
npcController.PlayerLeave();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7e0b023cc6a72a94d98cc0b4de447614
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Reference in New Issue
Block a user