예제 #1
0
    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);
    }
예제 #2
0
    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();
    }