public override int GetHash() { var szSkin = ""; if (SkinId < 10) { szSkin = "0" + SkinId; } else { szSkin = SkinId.ToString(); } var hash = 0; var gobj = "[Character]"; for (var i = 0; i < gobj.Length; i++) { hash = char.ToLower(gobj[i]) + 0x1003F * hash; } for (var i = 0; i < Model.Length; i++) { hash = char.ToLower(Model[i]) + 0x1003F * hash; } for (var i = 0; i < szSkin.Length; i++) { hash = char.ToLower(szSkin[i]) + 0x1003F * hash; } return(hash); }
//更新衣服gizmo public void UpdateClothGizmo() { for (int i = 0; i < 3; i++) { SkinId id = new SkinId { SkinID = gm.TakeonSkin.SkinID, ClothID = i }; state = gm.CheckClothState(id); switch (state) { case ItemState.Buy: ClothStateGizmo[i].overrideSprite = gizmoBuy; break; case ItemState.UnBuy: ClothStateGizmo[i].overrideSprite = gizmoUnbuy; break; case ItemState.Equiped: ClothStateGizmo[i].overrideSprite = gizmoEquip; break; default: break; } } }
/// <summary> /// 使用したスキンのIDをセーブする /// </summary> /// <param name="skinId"></param> public void SaveUsedSkin(SkinId skinId) { if (!saveData.usedSkinData.skinIdList.Contains(skinId)) { saveData.usedSkinData.skinIdList.Add(skinId); } }
//更新购买按钮图标(衣服) public void UpdateClothBuyBtn(int i) { SkinId id = new SkinId { SkinID = gm.TakeonSkin.SkinID, ClothID = i }; state = gm.CheckClothState(id); switch (state) { case ItemState.Buy: imgClothBuybtn.transform.gameObject.SetActive(true); imgClothBuybtn.sprite = sprEquip; break; case ItemState.UnBuy: imgClothBuybtn.transform.gameObject.SetActive(true); imgClothBuybtn.sprite = sprBuy; break; case ItemState.Equiped: imgClothBuybtn.transform.gameObject.SetActive(false); break; default: break; } }
private static void ApplySkin(SkinId skin) { var dict = Application.Current.Resources.MergedDictionaries; dict.Remove(OfficeBlack); dict.Remove(OfficeSilver); dict.Remove(WindowsSeven); dict.Remove(Vista); switch (skin) { case SkinId.OfficeBlack: dict.Add(OfficeBlack); break; case SkinId.OfficeSilver: dict.Add(OfficeSilver); break; case SkinId.Windows7: dict.Add(WindowsSeven); break; case SkinId.Vista: dict.Add(Vista); break; } OnSkinChanged(); }
/// <summary> /// スキンを選択したときに呼ばれる /// </summary> /// <param name="id">選択されたID</param> public void OnSelectSkin(SkinId id) { if (nowSkinId != id) { nowSkinId = id; SaveDataManager.Inst.SavePlayerSkinID(nowSkinId); EventManager.Inst.InvokeEvent(SubjectType.OnChangeSkin); } }
public SkinId NowSkinID => nowSkinId; //外部に公開するためのプロパティ /// <summary> /// スクリプトのインスタンスがロードされたときに呼び出される /// </summary> void Awake() { nowSkinId = SaveDataManager.Inst.GetSkinID(); skinDictionary = new Dictionary <SkinId, GameObject>(); foreach (var skinData in playerSkinData.Skins) { skinDictionary.Add(skinData.id, skinData.skin); } EventManager.Inst.InvokeEvent(SubjectType.OnChangeSkin); }
private void RibbonGallery_SelectionChanged(object sender, SelectionChangedEventArgs e) { RibbonGallery g = sender as RibbonGallery; SkinId skin = IdToSkin(g.SelectedIndex); if (Skin != skin) { Skin = skin; } }
public SkinId SaveSkin(Transform tr) { if (root.Skins == null) { root.Skins = new List<GLTF.Schema.Skin>(); } var skinMesh = tr.GetComponent<SkinnedMeshRenderer>(); if (_skin2ID.ContainsKey(skinMesh)) { return _skin2ID[skinMesh]; } var node = tr2node[tr]; var skin = new Skin(); skin.Name = "skeleton-" + skinMesh.rootBone.name + "-" + tr.name; skin.Skeleton = new NodeId { Id = root.Nodes.IndexOf(node), Root = root }; skin.Joints = new List<NodeId>(); foreach (var bone in skinMesh.bones) { if (!tr2node.ContainsKey(bone)) { throw new Exception("You are expoting a skinned mesh '" + node.Name + "', but not select bones!"); } skin.Joints.Add(new NodeId { Id = root.Nodes.IndexOf(tr2node[bone]) }); } // Create invBindMatrices accessor var bufferView = CreateStreamBufferView("invBind-" + skinMesh.rootBone.name + "-" + tr.name); Matrix4x4[] invBindMatrices = new Matrix4x4[skin.Joints.Count]; for (int i = 0; i < skinMesh.bones.Length; ++i) { // Generates inverseWorldMatrix in right-handed coordinate system Matrix4x4 invBind = skinMesh.sharedMesh.bindposes[i]; invBindMatrices[i] = Utils.ConvertMat4LeftToRightHandedness(ref invBind); } skin.InverseBindMatrices = AccessorToId( ExporterUtils.PackToBuffer(bufferView.streamBuffer, invBindMatrices, GLTFComponentType.Float), bufferView ); root.Skins.Add(skin); var id = new SkinId { Id = root.Skins.Count - 1, Root = root }; _skin2ID.Add(skinMesh, id); return id; }
private static void SkinPropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { SkinId id = (SkinId)e.NewValue; SkinManager.SkinId = id; Main main = (Main)o; int index = SkinToId(id); if (main.StyleGallery.SelectedIndex != index) { main.StyleGallery.SelectedIndex = index; } }
/// <summary> /// IDと対応したスキンを取得する /// </summary> /// <param name="id">ID</param> /// <returns>引数として渡したIDに対応したスキン</returns> public GameObject GetSkin(SkinId id) { GameObject skinObject; if (skinDictionary.TryGetValue(id, out skinObject)) { return(skinObject); } else { Debug.LogError("IDの対応したスキンが登録されていません。/nPlayerSkinDataにIDとプレハブを登録してください。"); return(null); } }
private static int SkinToId(SkinId id) { switch (id) { case SkinId.Vista: return(0); case SkinId.Windows7: return(1); case SkinId.OfficeBlue: return(2); case SkinId.OfficeSilver: return(3); case SkinId.OfficeBlack: return(4); default: throw new ArgumentOutOfRangeException(); } }
////检查衣服状态(已装备/已购买/未购买) public ItemState CheckClothState(SkinId id) { if (id.SkinID == TakeonSkin.SkinID && id.ClothID == TakeonSkin.ClothID) { return(ItemState.Equiped); } else { foreach (var item in BuySkin) { if (id.SkinID == item.SkinID && id.ClothID == item.ClothID) { return(ItemState.Buy); } } return(ItemState.UnBuy); } }
public void OnBuyClothBtnClick() { Game.Instance.sound.PlayEffect("Se_UI_Button"); SkinId id = new SkinId { SkinID = gm.TakeonSkin.SkinID, ClothID = selectIndex }; state = gm.CheckClothState(id); switch (state) { case ItemState.Buy: //装备物品 BuySkinArgs e = new BuySkinArgs { Coin = Game.Instance.staticData.GetPlayerSkinInfo(gm.TakeonSkin.SkinID, selectIndex).coin, ID = new SkinId { SkinID = gm.TakeonSkin.SkinID, ClothID = selectIndex } }; SendEvent(Const.E_EquipCloth, e); break; case ItemState.UnBuy: //发起购买 BuySkinArgs ee = new BuySkinArgs { Coin = Game.Instance.staticData.GetPlayerSkinInfo(gm.TakeonSkin.SkinID, selectIndex).coin, ID = new SkinId { SkinID = gm.TakeonSkin.SkinID, ClothID = selectIndex } }; SendEvent(Const.E_BuyCloth, ee); break; case ItemState.Equiped: break; default: break; } }
private void SaveSettings() { string ExtendName = ""; if (radioButton1.Checked == true) { ExtendName = "MP4"; } if (radioButton2.Checked == true) { ExtendName = "MKV"; } if (radioButton3.Checked == true) { ExtendName = "TS"; } if (radioButton4.Checked == true) { ExtendName = "FLV"; } XmlTextWriter xml = new XmlTextWriter(@"Tools\Settings.xml", Encoding.UTF8); xml.Formatting = Formatting.Indented; xml.WriteStartDocument(); xml.WriteStartElement("Settings"); xml.WriteStartElement("Skin"); xml.WriteCData(SkinId.ToString()); xml.WriteEndElement(); xml.WriteStartElement("DownPath"); xml.WriteCData(textBox_DownloadPath.Text); xml.WriteEndElement(); xml.WriteStartElement("ExtendName"); xml.WriteCData(ExtendName); xml.WriteEndElement(); xml.WriteEndElement(); xml.WriteEndDocument(); xml.Flush(); xml.Close(); }
private static void ApplySkin(SkinId skin) { Collection<ResourceDictionary> dict = Application.Current.Resources.MergedDictionaries; dict.Remove(OfficeBlack); dict.Remove(OfficeSilver); dict.Remove(WindowsSeven); dict.Remove(Vista); switch (skin) { case SkinId.OfficeBlack: dict.Add(OfficeBlack); break; case SkinId.OfficeSilver: dict.Add(OfficeSilver); break; case SkinId.Windows7: dict.Add(WindowsSeven); break; case SkinId.Vista: dict.Add(Vista); break; } OnSkinChanged(); }
public string GetUniquePath() { return(SkinId.Replace('_', '/') + '/'); }
/// <summary> /// スキンが使用されたことがあるかどうか /// </summary> /// <param name="skinId">使用確認をするスキンのID</param> /// <returns>使用されたことがあるかどうか</returns> public bool GetIsUsedSkin(SkinId skinId) { return(saveData.usedSkinData.skinIdList.Contains(skinId)); }
private void RibbonGallery_SelectionChanged(object sender, SelectionChangedEventArgs e) { RibbonGallery g = sender as RibbonGallery; SkinId skin = IdToSkin(g.SelectedIndex); if (Skin != skin) Skin = skin; }
private void LoadSettings() { Settings settings = Settings.Default; outlook.MaxNumberOfButtons = settings.MaxSections; outlook.IsMaximized = settings.IsSidebarExpanded; ribbon.CanMinimize = settings.CanRibbonMinimize; this.PasswordGrid.PasswordColumn.Width = new GridLength(settings.PasswordWith); ribbon.IsExpanded = settings.IsRibbonExpanded && ribbon.CanMinimize; if (settings.Left != -1) Left = settings.Left; if (settings.Top != -1) Top = settings.Top; if (settings.Width > 48) Width = settings.Width; if (settings.Height > 32) Height = settings.Height; // IsGlassEnabled = settings.IsGlassEnabled; Skin = settings.Skin; }
private static int SkinToId(SkinId id) { switch (id) { case SkinId.Vista: return 0; case SkinId.Windows7: return 1; case SkinId.OfficeBlue: return 2; case SkinId.OfficeSilver: return 3; case SkinId.OfficeBlack: return 4; default: throw new ArgumentOutOfRangeException(); } }
/// <summary> /// プレイヤーのマテリアルデータをセーブする /// </summary> /// <param name="id">上書きするマテリアルID</param> public void SavePlayerSkinID(SkinId id) { saveData.playerSkinId = id; JsonDataSaver.Save <SaveData>(saveData); }