// Update is called once per frame void Update() { if ((!flip && bone.transform.position.x - relative.position.x > threshold) || (flip && bone.transform.position.x - relative.position.x < -1 * threshold)) { sr.SetCategoryAndLabel(sr.GetCategory(), "Side"); } else { sr.SetCategoryAndLabel(sr.GetCategory(), "Front"); } }
public void ChangeToolMode(ToolCode toolCode, bool toolMode) { if (toolCode == ToolCode.Default) { toolCode = defaultTool; } ToolEquipData toolData = toolsEquipData.Find(toolEquipData => toolEquipData.toolCode == toolCode); if (toolData != null) { // Смену каждого инструмента можно реализовать двумя способами. Через смену всего спрайта или через инициализацию // дополнительного gameObject с инструментом. Изначально я делал отдельные спрайты персонажа для каждого инструмента. Для // моих спрайтов автоматических риггинг работает некорректно, а вручную это занимает время. Т.е. введение новых инструментов // становится довольно муторно. Но с таким способом можно лучше регулировать "глубину" инструмента - например, чтобы он был за головой, но перед телом. // Метод с геймобъектом быстрее, но там не получится сделать разное отношение глубин для разных частей тела - только для всего тела целиком. // Поэтому я оставил оба способа, потому что где-то без замены спрайта не обойтись (как, например, с лопатой), а где-то хватит и геймобъекта (мешок) if (toolData.isToUseSpriteSwitch) { spriteResolver.SetCategoryAndLabel(spriteResolver.GetCategory(), toolMode ? toolData.spriteResolveLabel : "Main"); } else { toolData.ChangeMode(toolMode); } } }
private void SetLabel(SpriteResolver spriteResolver, string label) { var category = spriteResolver.GetCategory(); label = DoesLabelExistInCategory(label, category) ? label : NoneLabel; spriteResolver.SetCategoryAndLabel(category, label); }
// Start is called before the first frame update void Start() { eyes.SetCategoryAndLabel(eyes.GetCategory(), "" + Random.Range(1, 10)); mouth.SetCategoryAndLabel(mouth.GetCategory(), "" + Random.Range(1, 10)); hair.SetCategoryAndLabel(hair.GetCategory(), "" + Random.Range(1, 10)); List <string> s = library.GetCategoryLabelNames(weapons.GetCategory()).ToList(); weapons.SetCategoryAndLabel(weapons.GetCategory(), s[Random.Range(0, 5)]); Pawn pawn = GetComponentInParent <Pawn>(); if (pawn.color) { string label = "Thief"; List <string> s1 = library.GetCategoryLabelNames(label).ToList(); body.SetCategoryAndLabel(label, s1[Random.Range(0, 3)]); } else { string label = "Raider"; List <string> s1 = library.GetCategoryLabelNames(label).ToList(); body.SetCategoryAndLabel(label, s1[Random.Range(0, 3)]); } }
public override string ToString() { return(characterData.name + ", sprite : " + spriteResolver.GetCategory()); }
public ModelPart(SpriteResolver resolver) { _resolver = resolver; _category = _resolver.GetCategory(); _renderer = _resolver.GetComponent <SpriteRenderer>(); }
/** * @Description: The function of changing equipment, * other script can using PlayerController.Instance.ChangeEquipments to call this function. * for the first param, developer could using PlayerController.EquopmentType to choose which equipmentType they want to change, * for the second param, developer could using PlayerController.EQUIPMENT_LEVEL_XXX to choose which level of equipment they want to change. * @version: 1.0.0 * @Author: Zilin Zhang * @Date: 2020-11-27 03:30:14 * @LastEditors: Zilin Zhang * @LastEditTime: 2020-11-27 03:29:45 */ public void ChangeEquipments(EquipmentType equipmentType, string equipmentLevel) { switch (equipmentType) { case EquipmentType.armour: foreach (var resolver in spriteResolvers) { if (!(resolver.GetCategory().Equals("LeftItem") || resolver.GetCategory().Equals("RightItem"))) { resolver.SetCategoryAndLabel(resolver.GetCategory(), equipmentLevel); } } if (equipmentLevel.Equals(EQUIPMENT_LEVEL_NORMAL)) { itemEquipment.SetActive(true); } else { itemEquipment.SetActive(false); } break; case EquipmentType.leftHand: if (rightHandResolve.GetLabel().Equals(EQUIPMENT_RIGHT_ITEM_WOOD_BOW)) { rightHandResolve.SetCategoryAndLabel(rightHandResolve.GetCategory(), EQUIPMENT_LEFT_OR_RIGHT_ITEM_NONE); arrowBag.SetActive(false); isEquippedRemoteWeapon = false; } leftHandResolve.SetCategoryAndLabel(leftHandResolve.GetCategory(), equipmentLevel); break; case EquipmentType.rightHand: // handle some special type // can not use other things in left hand when using bow if (equipmentLevel.Equals(EQUIPMENT_RIGHT_ITEM_WOOD_BOW) || equipmentLevel.Equals(EQUIPMENT_RIGHT_ITEM_IRON_BOW) || equipmentLevel.Equals(EQUIPMENT_RIGHT_ITEM_GOLD_BOW)) { leftHandResolve.SetCategoryAndLabel(leftHandResolve.GetCategory(), EQUIPMENT_LEFT_ITEM_WOOD_ARROW); rightHandResolve.SetCategoryAndLabel(rightHandResolve.GetCategory(), EQUIPMENT_RIGHT_ITEM_WOOD_BOW); arrowBag.SetActive(true); isEquippedRemoteWeapon = true; } else { if (rightHandResolve.GetLabel().Equals(EQUIPMENT_RIGHT_ITEM_WOOD_BOW) || rightHandResolve.GetLabel().Equals(EQUIPMENT_RIGHT_ITEM_IRON_BOW) || rightHandResolve.GetLabel().Equals(EQUIPMENT_RIGHT_ITEM_GOLD_BOW)) { leftHandResolve.SetCategoryAndLabel(leftHandResolve.GetCategory(), EQUIPMENT_LEFT_OR_RIGHT_ITEM_NONE); arrowBag.SetActive(false); isEquippedRemoteWeapon = false; } rightHandResolve.SetCategoryAndLabel(rightHandResolve.GetCategory(), equipmentLevel); } break; default: break; } }