123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- using System.Linq;
- using Assets.HeroEditor4D.Common.Scripts.CharacterScripts;
- using Assets.HeroEditor4D.Common.Scripts.Enums;
- using UnityEngine;
- namespace Assets.HeroEditor4D.Common.Scripts.ExampleScripts
- {
- /// <summary>
- /// An example of how to change character's appearance.
- /// </summary>
- public class AppearanceExample : MonoBehaviour
- {
- public CharacterAppearance Appearance = new CharacterAppearance();
- public Character4D Character;
- public AvatarSetup AvatarSetup;
- public void Start()
- {
- Refresh();
- }
- public void Refresh()
- {
- Appearance.Setup(Character);
- var helmetId = Character.SpriteCollection.Armor.SingleOrDefault(i => i.Sprites.Contains(Character.Front.Helmet))?.Id;
- AvatarSetup.Initialize(Appearance, helmetId);
- }
- public void SetRandomAppearance()
- {
- Appearance.Hair = Random.Range(0, 3) == 0 ? null : Character.SpriteCollection.Hair[Random.Range(0, Character.SpriteCollection.Hair.Count)].Id;
- Appearance.HairColor = new Color(Random.Range(0, 1f), Random.Range(0, 1f), Random.Range(0, 1f));
- Appearance.Eyebrows = Character.SpriteCollection.Eyebrows[Random.Range(0, Character.SpriteCollection.Eyebrows.Count)].Id;
- Appearance.Eyes = Character.SpriteCollection.Eyes[Random.Range(0, Character.SpriteCollection.Eyes.Count)].Id;
- Appearance.EyesColor = new Color(Random.Range(0, 1f), Random.Range(0, 1f), Random.Range(0, 1f));
- Appearance.Mouth = Character.SpriteCollection.Mouth[Random.Range(0, Character.SpriteCollection.Mouth.Count)].Id;
- Appearance.Beard = Random.Range(0, 3) == 0 ? Character.SpriteCollection.Beard[Random.Range(0, Character.SpriteCollection.Beard.Count)].Id : null;
-
- Refresh();
- }
- public void ResetAppearance()
- {
- Appearance = new CharacterAppearance();
- Refresh();
- }
- public void SetRandomHair()
- {
- var randomIndex = Random.Range(0, Character.SpriteCollection.Hair.Count);
- var randomItem = Character.SpriteCollection.Hair[randomIndex];
- var randomColor = new Color(Random.Range(0, 1f), Random.Range(0, 1f), Random.Range(0, 1f));
- Character.SetBody(randomItem, BodyPart.Hair, randomColor);
- }
- public void SetRandomEyebrows()
- {
- var randomIndex = Random.Range(0, Character.SpriteCollection.Eyebrows.Count);
- var randomItem = Character.SpriteCollection.Eyebrows[randomIndex];
- Character.SetBody(randomItem, BodyPart.Eyebrows);
- }
- public void SetRandomEyes()
- {
- var randomIndex = Random.Range(0, Character.SpriteCollection.Eyes.Count);
- var randomItem = Character.SpriteCollection.Eyes[randomIndex];
- var randomColor = new Color(Random.Range(0, 1f), Random.Range(0, 1f), Random.Range(0, 1f));
- Character.SetBody(randomItem, BodyPart.Eyes, randomColor);
- }
- public void SetRandomMouth()
- {
- var randomIndex = Random.Range(0, Character.SpriteCollection.Mouth.Count);
- var randomItem = Character.SpriteCollection.Mouth[randomIndex];
- Character.SetBody(randomItem, BodyPart.Mouth);
- }
- }
- }
|