示例#1
0
        public void InitWithoutTextureBaking()
        {
            {
                m_unit = DevEngine.Instance.GetPackage_Unit(Info.unit_part, Info.unit_index);
                m_main_weapon = DevEngine.Instance.GetPackage_Weapon(Info.main_weapon_part, Info.main_weapon_index);
                m_sub_weapon = DevEngine.Instance.GetPackage_Weapon(Info.sub_weapon_part, Info.sub_weapon_index);
                m_wing = DevEngine.Instance.GetPackage_Wing(Info.wing_part, Info.wing_index);

                m_unit_pak = DevEngine.Instance.GetPackage(Info.unit_part);
                m_main_weapon_pak = DevEngine.Instance.GetPackage(Info.main_weapon_part);
                m_sub_weapon_pak = DevEngine.Instance.GetPackage(Info.sub_weapon_part);
            }

            DevPart part_unit = DevEngine.Instance.GetPackage(Info.unit_part);
            DevPart part_armor = DevEngine.Instance.GetPackage(Info.armor_part);
            DevPart part_main = DevEngine.Instance.GetPackage(Info.main_weapon_part);
            DevPart part_sub = DevEngine.Instance.GetPackage(Info.sub_weapon_part);
            DevPart part_wing = DevEngine.Instance.GetPackage(Info.wing_part);

            PackageData_Unit pak_unit = part_unit != null ? part_unit.GetUnit(Info.unit_index) : null;
            PackageData_Armor pak_armor = part_armor != null ? part_armor.GetArmor(Info.armor_index, Info.armor_color) : null;
            PackageData_Weapon pak_main = part_main != null ? part_main.GetWeapon(Info.main_weapon_index) : null;
            PackageData_Weapon pak_sub = part_sub != null ? part_sub.GetWeapon(Info.sub_weapon_index) : null;
            PackageData_Wing pak_wing = part_wing != null ? part_wing.GetWing(Info.wing_index) : null;

            foreach (SpriteRenderer r in transform.GetComponentsInChildren<SpriteRenderer>(true))
            {
                if (r.name == "head")
                {
                    if (pak_armor != null)
                    {
                        switch (pak_armor.option)
                        {
                            case SHOW_OPTION.HIDE_FACE:
                                r.sprite = null;
                                break;
                            case SHOW_OPTION.SHOW_HAIR:
                                r.sprite = pak_unit != null ? pak_unit.sprite_face_normal : null;
                                break;
                            case SHOW_OPTION.NONE:
                            default:
                                r.sprite = pak_unit != null ? pak_unit.sprite_face_equiped : null;
                                break;
                        }
                    }
                    else
                    {
                        r.sprite = pak_unit != null ? pak_unit.sprite_face_normal : null;
                    }
                }
                else if (r.name == "eye_normal")
                {
                    if (pak_armor != null && pak_armor.option == SHOW_OPTION.HIDE_FACE)
                    {
                        r.sprite = null;
                    }
                    else if (part_unit != null)
                    {
                        PackageData_Unit temp_pak = pak_unit;
                        if (temp_pak == null || temp_pak.sprite_eye_normal == null) temp_pak = part_unit.GetUnit(0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_eye_normal : null;
                    }
                    else
                    {
                        r.sprite = null;
                    }
                    r.color = pak_unit != null ? pak_unit.eye_color : Color.white;
                }
                else if (r.name == "eye_damage")
                {
                    if (pak_armor != null && pak_armor.option == SHOW_OPTION.HIDE_FACE)
                    {
                        r.sprite = null;
                    }
                    else if (part_unit != null)
                    {
                        PackageData_Unit temp_pak = pak_unit;
                        if (temp_pak == null || temp_pak.sprite_eye_damage == null) temp_pak = part_unit.GetUnit(0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_eye_damage : null;
                    }
                    else
                    {
                        r.sprite = null;
                    }
                    r.color = pak_unit != null ? pak_unit.eye_color : Color.white;
                }
                else if (r.name == "arm-back")
                {
                    // color
                    if (pak_armor != null)
                    {
                        r.color = pak_armor.arm_color;
                    }
                    else
                    {
                        r.color = pak_unit != null ? pak_unit.arm_color : Color.white;
                    }
                    // sprite
                    if (pak_armor != null)
                    {
                        PackageData_Armor temp_pak = pak_armor;
                        if (temp_pak == null || temp_pak.sprite_arm_main == null) temp_pak = part_armor.GetArmor(0, Info.armor_color);
                        if (temp_pak == null || temp_pak.sprite_arm_main == null) temp_pak = part_armor.GetArmor(0, 0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_arm_main : null;
                    }
                    else if (part_unit != null)
                    {
                        PackageData_Unit temp_pak = pak_unit;
                        if (temp_pak == null || temp_pak.sprite_arm_main == null) temp_pak = part_unit.GetUnit(0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_arm_main : null;
                    }
                    else
                    {
                        r.sprite = null;
                    }
                }
                else if (r.name == "arm-front")
                {
                    // color
                    if (pak_armor != null)
                    {
                        r.color = pak_armor.arm_color;
                    }
                    else
                    {
                        r.color = pak_unit != null ? pak_unit.arm_color : Color.white;
                    }
                    // sprite
                    if (pak_armor != null)
                    {
                        PackageData_Armor temp_pak = pak_armor;
                        if (temp_pak == null || temp_pak.sprite_arm_sub == null) temp_pak = part_armor.GetArmor(0, Info.armor_color);
                        if (temp_pak == null || temp_pak.sprite_arm_sub == null) temp_pak = part_armor.GetArmor(0, 0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_arm_sub : null;
                    }
                    else if (part_unit != null)
                    {
                        PackageData_Unit temp_pak = pak_unit;
                        if (temp_pak == null || temp_pak.sprite_arm_sub == null) temp_pak = part_unit.GetUnit(0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_arm_sub : null;
                    }
                    else
                    {
                        r.sprite = null;
                    }
                }
                else if (r.name == "body")
                {
                    if (part_armor != null)
                    {
                        PackageData_Armor temp_pak = pak_armor;
                        if (temp_pak == null || temp_pak.sprite_body == null) temp_pak = part_armor.GetArmor(0, Info.armor_color);
                        if (temp_pak == null || temp_pak.sprite_body == null) temp_pak = part_armor.GetArmor(0, 0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_body : null;
                    }
                    else if (part_unit != null)
                    {
                        PackageData_Unit temp_pak = pak_unit;
                        if (temp_pak == null || temp_pak.sprite_body == null) temp_pak = part_unit.GetUnit(0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_body : null;
                    }
                    else
                    {
                        r.sprite = null;
                    }
                }
                else if (r.name == "glove_back")
                {
                    // color
                    if (pak_armor != null)
                    {
                        r.color = pak_armor.glove_color;
                    }
                    else
                    {
                        r.color = pak_unit != null ? pak_unit.glove_color : Color.white;
                    }
                    // sprite
                    if (pak_armor != null)
                    {
                        PackageData_Armor temp_pak = pak_armor;
                        if (temp_pak == null || temp_pak.sprite_glove_main == null) temp_pak = part_armor.GetArmor(0, Info.armor_color);
                        if (temp_pak == null || temp_pak.sprite_glove_main == null) temp_pak = part_armor.GetArmor(0, 0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_glove_main : null;
                    }
                    else if (part_unit != null)
                    {
                        PackageData_Unit temp_pak = pak_unit;
                        if (temp_pak == null || temp_pak.sprite_glove_main == null) temp_pak = part_unit.GetUnit(0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_glove_main : null;
                    }
                    else
                    {
                        r.sprite = null;
                    }
                }
                else if (r.name == "glove_front")
                {
                    // color
                    if (pak_armor != null)
                    {
                        r.color = pak_armor.glove_color;
                    }
                    else
                    {
                        r.color = pak_unit != null ? pak_unit.glove_color : Color.white;
                    }
                    // sprite
                    if (pak_armor != null)
                    {
                        PackageData_Armor temp_pak = pak_armor;
                        if (temp_pak == null || temp_pak.sprite_glove_sub == null) temp_pak = part_armor.GetArmor(0, Info.armor_color);
                        if (temp_pak == null || temp_pak.sprite_glove_sub == null) temp_pak = part_armor.GetArmor(0, 0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_glove_sub : null;
                    }
                    else if (part_unit != null)
                    {
                        PackageData_Unit temp_pak = pak_unit;
                        if (temp_pak == null || temp_pak.sprite_glove_sub == null) temp_pak = part_unit.GetUnit(0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_glove_sub : null;
                    }
                    else
                    {
                        r.sprite = null;
                    }
                }
                else if (r.name == "leg_0")
                {
                    if (part_armor != null)
                    {
                        PackageData_Armor temp_pak = pak_armor;
                        if (temp_pak == null || temp_pak.sprite_leg0 == null) temp_pak = part_armor.GetArmor(0, Info.armor_color);
                        if (temp_pak == null || temp_pak.sprite_leg0 == null) temp_pak = part_armor.GetArmor(0, 0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_leg0 : null;
                    }
                    else
                    {
                        PackageData_Unit temp_pak = pak_unit;
                        if (temp_pak == null || temp_pak.sprite_leg0 == null) temp_pak = part_unit != null ? part_unit.GetUnit(0) : null;
                        r.sprite = temp_pak != null ? temp_pak.sprite_leg0 : null;
                    }
                }
                else if (r.name == "leg_1")
                {
                    if (part_armor != null)
                    {
                        PackageData_Armor temp_pak = pak_armor;
                        if (temp_pak == null || temp_pak.sprite_leg1 == null) temp_pak = part_armor.GetArmor(0, Info.armor_color);
                        if (temp_pak == null || temp_pak.sprite_leg1 == null) temp_pak = part_armor.GetArmor(0, 0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_leg1 : null;
                    }
                    else
                    {
                        PackageData_Unit temp_pak = pak_unit;
                        if (temp_pak == null || temp_pak.sprite_leg1 == null) temp_pak = part_unit != null ? part_unit.GetUnit(0) : null;
                        r.sprite = temp_pak != null ? temp_pak.sprite_leg1 : null;
                    }
                }
                else if (r.name == "helm")
                {
                    r.sprite = pak_armor != null ? pak_armor.sprite_helm : null;
                }
                else if (r.name == "neck")
                {
                    r.color = pak_armor != null ? pak_armor.arm_color : Color.white;
                    if (part_armor != null)
                    {
                        PackageData_Armor temp_pak = pak_armor;
                        if (temp_pak == null || temp_pak.sprite_neck == null) temp_pak = part_armor.GetArmor(0, Info.armor_color);
                        if (temp_pak == null || temp_pak.sprite_neck == null) temp_pak = part_armor.GetArmor(0, 0);
                        r.sprite = temp_pak != null ? temp_pak.sprite_neck : null;
                    }
                    else
                    {
                        r.sprite = null;
                    }
                }
                else if (r.sprite != null && r.sprite.name == "weapon_back")
                {
                    _set_sprite(r, pak_main != null ? pak_main.sprite_weapon : null);
                }
                else if (r.sprite != null && r.sprite.name == "weapon_front")
                {
                    _set_sprite(r, pak_sub != null ? pak_sub.sprite_weapon : null);
                }
                else if (r.sprite != null && r.sprite.name == "bow_0")
                {
                    if (pak_main == null)
                    {
                        r.enabled = false;
                    }
                    else
                    {
                        Texture2D temp_texture = pak_main.sprite_weapon.texture;
                        Sprite new_sprite = Sprite.Create(temp_texture, new Rect(0.5f * temp_texture.width, 0, 0.5f * temp_texture.width, temp_texture.height), new Vector3(0.5f, 0.5f), r.sprite.pixelsPerUnit);
                        r.enabled = true;
                        r.sprite = new_sprite;
                        r.sharedMaterial.mainTexture = pak_main.sprite_weapon.texture;
                        r.sprite.name = "bow_0";
                    }
                }
                else if (r.sprite != null && r.sprite.name == "bow_1")
                {
                    if (pak_main == null)
                    {
                        r.enabled = false;
                    }
                    else
                    {
                        Texture2D temp_texture = pak_main.sprite_weapon.texture;
                        Sprite new_sprite = Sprite.Create(temp_texture, new Rect(0, 0, 0.5f * temp_texture.width, temp_texture.height), new Vector3(0.5f, 0.5f), r.sprite.pixelsPerUnit);
                        r.enabled = true;
                        r.sprite = new_sprite;
                        r.sharedMaterial.mainTexture = pak_main.sprite_weapon.texture;
                        r.sprite.name = "bow_1";
                    }
                }
                else if (r.name == "cape")
                {
                    r.sprite = pak_wing != null ? pak_wing.sprite_wing : null;
                }
            }
            _fix_sprite_property();
            SetOrder(Info.order);
        }
示例#2
0
        public void UpdateView(Texture2D _texture)
        {
            InitMaterial();

            m_unit = DevEngine.Instance.GetPackage_Unit(Info.unit_part, Info.unit_index);
            m_main_weapon = DevEngine.Instance.GetPackage_Weapon(Info.main_weapon_part, Info.main_weapon_index);
            m_sub_weapon = DevEngine.Instance.GetPackage_Weapon(Info.sub_weapon_part, Info.sub_weapon_index);
            m_wing = DevEngine.Instance.GetPackage_Wing(Info.wing_part, Info.wing_index);

            m_unit_pak = DevEngine.Instance.GetPackage(Info.unit_part);
            m_main_weapon_pak = DevEngine.Instance.GetPackage(Info.main_weapon_part);
            m_sub_weapon_pak = DevEngine.Instance.GetPackage(Info.sub_weapon_part);

            _fix_sprite_property();
            this.SetMaterialTexture(_texture);
        }