public override void Init(SkillNode skillNode, GameObject targetTrans, Transform thisTrans, VoidResult action = null) { base.Init(skillNode, targetTrans, thisTrans, action); if (mCurSkillNode != null && attackerCs != null) { if (thisTrans) { CharacterPart rightPart = attackerCs.playerPart.Find(a => a.mRolePart == RolePart.RightHand); tractionPoint = rightPart == null ? null : rightPart.transform; FindBip(thisTrans, ref tractionPoint, "Bip001 R Hand"); FindBip(thisTrans, ref startPoint, "Bip001"); } if (targetTrans != null) { if (mHitTargetCs.state == Modestatus.Tower) { targetPoint = hit; } else { FindBip(targetTrans.transform, ref targetPoint, "Bip001"); } HitTarget(); mTractionDistance = attackerCs.pm.nav.radius * attackerCs.transform.localScale.z + mHitTargetCs.pm.nav.radius * attackerCs.transform.localScale.z; } } }
public void Initialize(CharacterPart[] parts) { this.parts = parts; partsRenderer[0].sprite = parts[0].sprite; partsRenderer[1].sprite = parts[1].sprite; partsRenderer[2].sprite = parts[2].sprite; partsRenderer[3].sprite = parts[3].sprite; }
public bool AddPart(CharacterPart part) { if (HasCategory(part)) return false; _parts.Add(part); return true; }
public void Initialize() { Sprite[] hatSprites = Resources.LoadAll<Sprite>("Sprites/characters/hats"); _hats = new CharacterPart[hatSprites.Length]; for (int i = 0; i < hatSprites.Length; i++) { _hats[i] = new CharacterPart(hatSprites[i], CharacterPart.Category.HAT, ""); } Sprite[] headSprites = Resources.LoadAll<Sprite>("Sprites/characters/head"); _heads = new CharacterPart[headSprites.Length]; for (int i = 0; i < headSprites.Length; i++) { _heads[i] = new CharacterPart(headSprites[i], CharacterPart.Category.HEAD, ""); } Sprite[] bodySprites = Resources.LoadAll<Sprite>("Sprites/characters/body"); _bodies = new CharacterPart[bodySprites.Length]; for (int i = 0; i < bodySprites.Length; i++) { _bodies[i] = new CharacterPart(bodySprites[i], CharacterPart.Category.BODY, ""); } Sprite[] pantSprites = Resources.LoadAll<Sprite>("Sprites/characters/pants"); _pants = new CharacterPart[pantSprites.Length]; for (int i = 0; i < pantSprites.Length; i++) { _pants[i] = new CharacterPart(pantSprites[i], CharacterPart.Category.PANT, ""); } }
void Start() { part = GetComponent <CharacterPart>(); switch (part.partOrientation) { case CharacterPart.PartOrientation.left: rumble = Vector2.right * rumblePower; break; case CharacterPart.PartOrientation.right: rumble = Vector2.up * rumblePower; break; default: rumble = Vector2.one * rumblePower; break; } character = part.creator.character; if (character) { if (character.characterLook) { lookPoint = character.characterLook.lookPoint; } else { Debug.LogError("No look point found!", character); } } }
public void givePart(CharacterPart part) { parts.RemoveAll(p => p.partType == part.partType); statUpgrades.RemoveAll(s => (s as CharacterPart)?.partType == part.partType); part.EquipPart(); parts.Add(part); giveStatUpgrade(part); }
/// <summary> /// Set character head mesh /// </summary> /// <param name="index"Index of element></param> public void SetHeadByIndex(int index) { CharacterPart head = GetCharacterPart("Head"); head.skinnedMesh.sharedMesh = headsPresets[index].mesh; headActiveIndex = index; }
public CharacterData GetCharacterData() { var psdLayers = dataProvider.GetPSDLayers(); var groups = psdLayers.Where(x => x.isGroup).Select(y => new CharacterGroup() { name = y.name, parentGroup = ParentGroupInFlatten(y.parentIndex, psdLayers) }).ToArray(); var cd = dataProvider.characterData; var parts = cd.parts == null ? new List <CharacterPart>() : cd.parts.ToList(); var spriteRects = dataProvider.GetSpriteMetaData(); parts.RemoveAll(x => Array.FindIndex(spriteRects, y => y.spriteID == new GUID(x.spriteId)) == -1); foreach (var spriteMetaData in spriteRects) { var srIndex = parts.FindIndex(x => new GUID(x.spriteId) == spriteMetaData.spriteID); CharacterPart cp = srIndex == -1 ? new CharacterPart() : parts[srIndex]; cp.spriteId = spriteMetaData.spriteID.ToString(); cp.spritePosition = new RectInt(); var uvTransform = spriteMetaData.uvTransform; var outlineOffset = new Vector2(spriteMetaData.rect.x - uvTransform.x, spriteMetaData.rect.y - uvTransform.y); cp.spritePosition.position = new Vector2Int((int)outlineOffset.x, (int)outlineOffset.y); cp.spritePosition.size = new Vector2Int((int)spriteMetaData.rect.width, (int)spriteMetaData.rect.height); cp.parentGroup = -1; //Find group var spritePSDLayer = psdLayers.FirstOrDefault(x => x.spriteID == spriteMetaData.spriteID); if (spritePSDLayer != null) { cp.parentGroup = ParentGroupInFlatten(spritePSDLayer.parentIndex, psdLayers); } if (srIndex == -1) { parts.Add(cp); } else { parts[srIndex] = cp; } } var layers = dataProvider.GetPSDLayers(); parts.Sort((x, y) => { var xIndex = layers.FindIndex(l => l.spriteID == new GUID(x.spriteId)); var yIndex = layers.FindIndex(l => l.spriteID == new GUID(y.spriteId)); return(xIndex.CompareTo(yIndex)); }); parts.Reverse(); cd.parts = parts.ToArray(); cd.dimension = dataProvider.documentSize; cd.characterGroups = groups.ToArray(); return(cd); }
public void SetPart(CharacterPart part) { for (int i = 0; i < parts.Length; i++) { if (part.category == parts[i].category) { parts[i] = part; partsRenderer[i].sprite = part.sprite; return; } } }
/// <summary> /// Set character head mesh /// </summary> /// <param name="index"Index of element></param> public void SetHeadByIndex(int index) { CharacterPart head = GetCharacterPart("Head"); for (var i = 0; i < headsPresets[index].mesh.Length; i++) { head.skinnedMesh[i].sharedMesh = headsPresets[index].mesh[i]; } headActiveIndex = index; }
CharacterSpriteSet GetSetFromName(CharacterPart key, string Name) { if (string.IsNullOrEmpty(Name)) { return(null); } var path = $"Sprite Sets/{key}/{Name}"; var obj = Resources.Load <CharacterSpriteSet>(path); //Debug.Log($"Loading {obj} as {key}"); return(obj); }
GameObject partToGameobject(CharacterPart part) { GameObject go = null; foreach (Transform child in transform) { if (child.gameObject.GetInstanceID() == part.ID) { return(child.gameObject); } } return(go); }
public CharacterSpriteSet GetRandom(int tone, Gender gender, CharacterPart part) { collection.gender = gender; collection.clothing = (SpriteSetCollection.CharacterClothing)part; switch (part) { case CharacterPart.None: Debug.Log("uh.. wrong, guess again.."); return(null); case CharacterPart.Hair: collection.hairColor = (HairColor)Random.Range(0, 5); return(RandomFromList(collection.Hairstyles)); case CharacterPart.Head: return(collection.SpriteSets[(SpriteSetCollection.GeneralCharacterPart)part][tone]); case CharacterPart.Face: return(collection.SpriteSets[(SpriteSetCollection.GeneralCharacterPart)part][0]); case CharacterPart.Facial: //Debug.Log("No facials yet"); return(null); case CharacterPart.Top: return(RandomFromList(collection.Clothes)); case CharacterPart.Body: return(collection.SpriteSets[(SpriteSetCollection.GeneralCharacterPart)part][tone]); case CharacterPart.Bottom: return(RandomFromList(collection.Clothes)); case CharacterPart.Hands: return(collection.SpriteSets[(SpriteSetCollection.GeneralCharacterPart)part][tone]); case CharacterPart.Other: //Debug.Log("No other yet"); return(null); default: break; } return(null); }
public void GenerateKiller() { Appearance appearance; CharacterPart[] parts; appearance = Instantiate(prefabKiller).GetComponent<Appearance>(); appearance.transform.parent = charactersContainer; parts = new CharacterPart[4]; parts[0] = _hats[Random.Range(0, _hats.Length)]; parts[1] = _heads[Random.Range(0, _heads.Length)]; parts[2] = _bodies[Random.Range(0, _bodies.Length)]; parts[3] = _pants[Random.Range(0, _pants.Length)]; appearance.Initialize(parts); level.AddCharacter(appearance.transform); }
void AddPart(List <GameObject> objectList, FetchPart fetchPart, CharacterPart.PartOrientation orientation = CharacterPart.PartOrientation.middle) { if (fetchPart.partIndex < objectList.Count && objectList[fetchPart.partIndex] != null) { CharacterPart part = Instantiate(objectList[fetchPart.partIndex], transform).GetComponent <CharacterPart>(); part.name = objectList[fetchPart.partIndex].name; part.partColor1 = fetchPart.partColor1; part.partColor2 = fetchPart.partColor2; part.Initialize(orientation); if (part.anim != null) { character.anims.Add(part.anim); } parts.Add(part); } }
/// <summary> /// Set hair by index /// </summary> /// <param name="index">index in hair presets</param> public void SetHairByIndex(int index) { CharacterPart hair = GetCharacterPart("Hair"); if (index != -1) { for (var i = 0; i < hairPresets[index].mesh.Length; i++) { hair.skinnedMesh[i].sharedMesh = hairPresets[index].mesh[i]; } } else { foreach (var hairsm in hair.skinnedMesh) { hairsm.sharedMesh = null; } } hairActiveIndex = index; }
public void PlaySpellEffect(string id) { if (eft != null) { eft.Quartz(GetEffectResourceRoot() + id + "_shifa", id); if (cs.GetMobaName().Equals("boss_003") && id.Equals("skill3") || (cs.GetMobaName().Equals("boss_006") && id.Equals("skill4"))) { GameObject spellEffect; eft.dic.TryGetValue(id, out spellEffect); CharacterPart cp = cs.playerPart.Find(a => a.mRolePart == RolePart.Head); if (spellEffect != null && cp != null) { spellEffect.transform.parent = cp.transform; spellEffect.transform.localPosition = Vector3.zero; spellEffect.transform.localRotation = Quaternion.identity; spellEffect.transform.localScale = Vector3.one; } } } }
void MassSpawn() { for (int i = 0; i < 5; i++) { item.Bot = SpriteCollection[i]; item.Top = SpriteCollection[i]; item.Right = SpriteCollection[i]; item.Left = SpriteCollection[i]; item.Part = part; SetType = part; Name = GetName(i); CreateAsset(); NextIndex++; } SpriteCollection.Clear(); }
public void GenerateNPCs() { npcs = new List<Appearance>(); Appearance npcAppearance; CharacterPart[] parts; for (int i = 0; i < nbrOfCharacters; i++) { npcAppearance = Instantiate(prefabNPC).GetComponent<Appearance>(); npcAppearance.transform.parent = charactersContainer; parts = new CharacterPart[4]; parts[0] = _hats[Random.Range(0, _hats.Length)]; parts[1] = _heads[Random.Range(0, _heads.Length)]; parts[2] = _bodies[Random.Range(0, _bodies.Length)]; parts[3] = _pants[Random.Range(0, _pants.Length)]; npcAppearance.Initialize(parts); level.AddCharacter(npcAppearance.transform); npcs.Add(npcAppearance); NPC npc = npcAppearance.GetComponent<NPC>(); MoveToTarget npcMoveToTarget = npc.GetMoveToTarget(); if (npcMoveToTarget != null) { npcMoveToTarget.Init(killerBehavior, level); } MoveToWaypoints npcMoveToWaypoints = npc.FindBehaviour<MoveToWaypoints>(); if (npcMoveToWaypoints != null) { level.SetRandomPath(npcMoveToWaypoints); } MoveToNewWaypoints npcMoveToNewWaypoints = npc.FindBehaviour<MoveToNewWaypoints>(); if (npcMoveToNewWaypoints != null) { npcMoveToNewWaypoints.Init(level); } MoveToSolo npcMoveToSolo = npc.FindBehaviour<MoveToSolo>(); if (npcMoveToSolo != null) { npcMoveToSolo.Init(level); } } }
public void update() { //Updates angle data with the kinect object data.readData(kinect); //Get key Presses key.update(); //Zeros all data so that your position is now the base position if (key.getKey(Keys.Z)) { data.zero(); } //Body swapping stuff if (key.getKey(Keys.W)) { bodyId++; if (bodyId >= bodyNames.Count) { bodyId = 0; } body = BodyLoader.loadBody(bodyNames[bodyId]); } if (key.getKey(Keys.E)) { backgroundId = (backgroundId == background.Count - 1) ? 0 : backgroundId + 1; } if (key.getKey(Keys.Q)) { saving = !saving; if (saving) { saves.Add(new Save(bodyNames[bodyId])); } if (!saving) { saves[saves.Count - 1].select(); } } if (key.getKey(Keys.Delete)) { for (int i = 0; i < saves.Count; i++) { if (saves[i].selected) { saves.RemoveAt(i); i--; } } } if (key.getKey(Keys.P)) { guy = !guy; } //Select pressed numbers int num = key.getNum(); if (num != -1 && saves.Count > num) { saves[num].select(); } //Saving if (saving) { saves[saves.Count - 1].addFrame(data.angles); } }
//! Get part prefab name. public string PartPrefab(CharacterPart Part, CharacterGroup Group, CharacterType Type) { return(characterParts[Part][Group][(int)Type].prefab); }
public ClothItem(CharacterPart Part, CharacterType Type) { part = Part; type = Type; }
/// <summary> /// 注册部件 /// </summary> protected virtual void registParts() { _list = new PlayerBasePart[17]; int i = 0; system = new SystemPart(); system.setMe(this); _list[i++] = system; func = new FuncPart(); func.setMe(this); _list[i++] = func; activity = new ActivityPart(); activity.setMe(this); _list[i++] = activity; role = new RolePart(); role.setMe(this); _list[i++] = role; scene = new ScenePart(); scene.setMe(this); _list[i++] = scene; character = new CharacterPart(); character.setMe(this); _list[i++] = character; social = new SocialPart(); social.setMe(this); _list[i++] = social; bag = new BagPart(); bag.setMe(this); _list[i++] = bag; mail = new MailPart(); mail.setMe(this); _list[i++] = mail; quest = new QuestPart(); quest.setMe(this); _list[i++] = quest; guide = new GuidePart(); guide.setMe(this); _list[i++] = guide; friend = new FriendPart(); friend.setMe(this); _list[i++] = friend; equip = new EquipPart(); equip.setMe(this); _list[i++] = equip; team = new TeamPart(); team.setMe(this); _list[i++] = team; union = new UnionPart(); union.setMe(this); _list[i++] = union; achievement = new AchievementPart(); achievement.setMe(this); _list[i++] = achievement; pet = new PetPart(); pet.setMe(this); _list[i++] = pet; }
public bool HasPart(CharacterPart part) { return part == parts[0] || part == parts[1] || part == parts[2] || part == parts[3]; }
public ClothItem(CharacterPart Part, CharacterType Type) { part = Part; type = Type; }
public bool HasCategory(CharacterPart part) { for (int i = 0; i < _parts.Count; i++) { if (part.category == _parts[i].category) return true; } return false; }
//! Get part prefab name. public string PartPrefab(CharacterPart Part, CharacterGroup Group, CharacterType Type) { return characterParts[Part][Group][(int)Type].prefab; }