public void SetupSaber(GameObject prefab, CustomSaberInfo saberInfo) { var saber = Instantiate(prefab, transform); ReplaceGlowMaterialsReqursive(saber.transform.Find("LeftSaber"), true); ReplaceGlowMaterialsReqursive(saber.transform.Find("RightSaber"), false); foreach (Transform child in saber.transform) { if (child.name == "RightSaber" || child.name == "LeftSaber") { GameObject _Tip = GameObject.CreatePrimitive(PrimitiveType.Cube); Destroy(_Tip.GetComponent <Collider>()); _Tip.name = "Tip"; _Tip.transform.SetParent(child); _Tip.transform.localScale = new Vector3(0, 0, 0); _Tip.transform.localPosition = new Vector3(0, 0, child.localScale.z); GameObject _base = GameObject.CreatePrimitive(PrimitiveType.Cube); Destroy(_base.GetComponent <Collider>()); _base.name = "Base"; _base.transform.SetParent(child); _base.transform.localScale = new Vector3(0, 0, 0); _base.transform.localPosition = new Vector3(0, 0, 0); } } saber.SetActive(false); saberInfo.SaberObject = saber; LoadedSabers.Add(saberInfo); }
public void Initizalize(CustomSaberInfo data, int index) { SongData = data; ValueIndex = index; SaberNameText.text = data.SaberDescriptor.SaberName; CreatorNameText.text = data.SaberDescriptor.AuthorName; }
IEnumerator LoadSabersRoutine() { string[] allBundlePaths = Directory.GetFiles(SettingsManager.Instance.Settings["Other"]["RootFolderPath"].StringValue + "CustomSabers", "*.saber"); for (int i = 0; i < allBundlePaths.Length; i++) { string bundlePath = allBundlePaths[i]; if (IsPathAlreadyLoaded(bundlePath)) { continue; } var bundleRequest = AssetBundle.LoadFromFileAsync(bundlePath); yield return(bundleRequest); var bundle = bundleRequest.assetBundle; if (bundle == null) { continue; } var prefabRequest = bundle.LoadAssetAsync <GameObject>("_customsaber"); yield return(prefabRequest); GameObject prefab = (GameObject)prefabRequest.asset; SaberDescriptor customSaber = prefab.GetComponent <SaberDescriptor>(); var saberInfo = new CustomSaberInfo { Path = bundlePath, SaberDescriptor = customSaber, }; SetupSaber(prefab, saberInfo); bundle.Unload(false); yield return(null); } }