protected UrbDisplayFeature CreateFeature(string FeatureSprite, Transform AttachmentPoint, float offset = 0.0f) { GameObject Feature = Instantiate <GameObject>(FeatureTemplate.gameObject, AttachmentPoint); UrbDisplayFeature DisplayFeature = Feature.GetComponent <UrbDisplayFeature>(); DisplayFeature.SpritePath = FeatureSprite; Feature.transform.position += (Vector3.forward * -offset); DisplayFeature.SortingOrder = SortingOrder; return(DisplayFeature); }
public override void OnEnable() { if (EffectDisplay != null) { EffectQueue = new List <UrbAction>(); EffectPositionQueue = new List <Vector3>(); } mInitialBodyOffset = this.transform.localPosition; mSignificance = 1f; DisplayBody = CreateFeature(BodySprite, Body); DisplayFace.FaceType = FaceSprite; PrimaryFeatures = new List <UrbDisplayFeature>(); SecondaryFeatures = new List <UrbDisplayFeature>(); DetailFeatures = new List <UrbDisplayFeature>(); if (FaceFeaturePoint != null) { float offset = 0; for (int i = 0; i < PrimaryFaceFeatureSprites.Length; i++) { PrimaryFeatures.Add(CreateFeature(PrimaryFaceFeatureSprites[i], FaceFeaturePoint, offset)); offset += featureOffset; } for (int i = 0; i < SecondaryFaceFeatureSprites.Length; i++) { SecondaryFeatures.Add(CreateFeature(SecondaryFaceFeatureSprites[i], FaceFeaturePoint, offset)); offset += featureOffset; } for (int i = 0; i < DetailFaceFeatureSprites.Length; i++) { DetailFeatures.Add(CreateFeature(DetailFaceFeatureSprites[i], FaceFeaturePoint, offset)); offset += featureOffset; } Face.transform.position += new Vector3(0, 0, offset); } if (ForeFeaturePoint != null) { float offset = 0; for (int i = 0; i < PrimaryForeFeatureSprites.Length; i++) { PrimaryFeatures.Add(CreateFeature(PrimaryForeFeatureSprites[i], ForeFeaturePoint, offset)); offset += featureOffset; } for (int i = 0; i < SecondaryForeFeatureSprites.Length; i++) { SecondaryFeatures.Add(CreateFeature(SecondaryForeFeatureSprites[i], ForeFeaturePoint, offset)); offset += featureOffset; } for (int i = 0; i < DetailForeFeatureSprites.Length; i++) { SecondaryFeatures.Add(CreateFeature(DetailForeFeatureSprites[i], ForeFeaturePoint, offset)); offset += featureOffset; } Face.transform.position += new Vector3(0, 0, offset); } if (BackFeaturePoint != null) { float offset = 0; for (int i = 0; i < PrimaryBackFeatureSprites.Length; i++) { PrimaryFeatures.Add(CreateFeature(PrimaryBackFeatureSprites[i], BackFeaturePoint, offset)); offset += featureOffset; } for (int i = 0; i < SecondaryBackFeatureSprites.Length; i++) { SecondaryFeatures.Add(CreateFeature(SecondaryBackFeatureSprites[i], BackFeaturePoint, offset)); offset += featureOffset; } for (int i = 0; i < DetailBackFeatureSprites.Length; i++) { SecondaryFeatures.Add(CreateFeature(DetailBackFeatureSprites[i], BackFeaturePoint, offset)); offset += featureOffset; } } UpdateFeatureColors(mColors.PrimaryColor, PrimaryFeatures); UpdateFeatureColors(mColors.SecondaryColor, SecondaryFeatures); UpdateFeatureColors(mColors.DetailColor, DetailFeatures); DisplayBody.FillColor = mColors.PrimaryColor.Fill; DisplayBody.LineColor = mColors.PrimaryColor.Line; DisplayFace.FillColor = mColors.FaceColor; DisplayFace.HighlightColor = mColors.HighlightColor; DisplayFace.SortingOrder = SortingOrder; DisplayBody.SortingOrder = SortingOrder; Height = defaultHeight; SynchronizeBody(); base.OnEnable(); }