Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 3
0
        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);
            }
        }