public HatPreview(GorillaHat baseHat, Collider collider) { hat = baseHat; if (hat != null && hat.Hat != null) { gameObject = UnityEngine.Object.Instantiate(hat.Hat); } else { // fake hat time string folder = Path.GetDirectoryName(typeof(GorillaCosmetics).Assembly.Location); gameObject = UnityEngine.Object.Instantiate(PackageUtils.AssetBundleFromPackage($"{folder}\\Misc\\None").LoadAsset <GameObject>("_Hat")); } gameObject.transform.SetParent(collider.transform); gameObject.transform.localPosition = Vector3.zero; gameObject.transform.localRotation = Quaternion.identity; gameObject.transform.localScale = new Vector3(0.25f, 0.25f, 0.25f); gameObject.layer = 18; gameObject.transform.SetParent(null); gameObject.transform.localScale = new Vector3(0.25f, 0.25f, 0.25f); UnityEngine.Object.DontDestroyOnLoad(gameObject); collider.isTrigger = true; collider.gameObject.layer = 18; button = collider.gameObject.AddComponent <HatPreviewButton>(); button.hat = hat; }
internal static void ChangeHat(VRRig __instance) { Transform existingHat = __instance.head.rigTarget.Find("Hat"); if (existingHat != null) { existingHat.parent = null; existingHat.gameObject.SetActive(false); UnityEngine.Object.Destroy(existingHat.gameObject); } if (IsLocalPlayer(__instance) || GorillaCosmetics.applyHatsToOtherPlayers.Value) { GorillaHat hat = AssetLoader.SelectedHat(); if (hat != null && hat.Hat != null) { GameObject hatObject = UnityEngine.Object.Instantiate(hat.Hat); hatObject.name = "Hat"; hatObject.transform.SetParent(__instance.head.rigTarget); hatObject.transform.localScale = new Vector3(0.25f, 0.25f, 0.25f); hatObject.transform.localPosition = new Vector3(0f, 0.365f, 0.04f); hatObject.transform.localRotation = Quaternion.identity; hatObject.transform.Rotate(new Vector3(0, 90, 10)); } } }
public void SetHat(GorillaHat hat) { Hat = hat; if (previewHat != null) { Destroy(previewHat); previewHat = null; } if (Hat != null) { previewHat = Hat.GetCleanAsset(); HeadModel controlledModel = wardrobeItemButton.controlledModel; previewHat.transform.parent = controlledModel.gameObject.transform; // TODO: Get the actual proper numbers previewHat.transform.localPosition = Constants.PreviewHatLocalPosition; previewHat.transform.localRotation = Constants.PreviewHatLocalRotation; previewHat.transform.localScale = Constants.PreviewHatLocalScale; } UpdateButton(); }
public static IList <GorillaHat> LoadHats(IEnumerable <string> hatFiles) { IList <GorillaHat> hats = new List <GorillaHat> { new GorillaHat("Default") }; foreach (string hatFile in hatFiles) { try { GorillaHat hat = new GorillaHat(hatFile); hats.Add(hat); } catch (Exception ex) { Debug.Log("ERROR!"); Debug.Log(ex); } } return(hats); }
public static int SelectedHatFromConfig() { string selectedHatString = GorillaCosmetics.selectedHat.Value.ToLower().Trim(); for (int i = 1; i < GorillaHatObjects.Count; i++) { GorillaHat gorillaHatObject = GorillaHatObjects[i]; if (gorillaHatObject == null) { return(0); } if (gorillaHatObject.Descriptor.HatName.ToLower().Trim() == selectedHatString) { return(i); } else if (Path.GetFileNameWithoutExtension(gorillaHatObject.FileName).ToLower().Trim() == selectedHatString) { return(i); } } return(0); }
public void SetHat(GorillaHat hat) { if (hat == null) { ResetHat(); return; } Plugin.Log($"Player: {NickName} switching hat from {CurrentHat?.Descriptor?.Name} to {hat?.Descriptor?.Name}"); CurrentHat = hat; if (currentHatObject != null) { GameObject.Destroy(currentHatObject); } currentHatObject = hat.GetAsset(); currentHatObject.transform.SetParent(rig.head.rigTarget); currentHatObject.transform.localScale = Vector3.one * 0.25f; currentHatObject.transform.localPosition = new Vector3(0, 0.365f, 0.04f); currentHatObject.transform.localRotation = Quaternion.Euler(0, 90, 10); //throw new NotImplementedException(); }