예제 #1
0
    public void SetCharacterItem(BaseItem item)
    {
        CharacterChildren characterChilds = mmCharacter.GetComponent <CharacterChildren>();

        Mesh itemPrefabMesh = null;

        if (item.itemType != ItemType.Skin && item.itemType != ItemType.Gun)
        {
            if (item.prefab != null)
            {
                itemPrefabMesh = item.prefab.GetComponent <MeshFilter>().sharedMesh;
            }
        }


        switch (item.itemType)
        {
        case ItemType.Gun:
            Transform gunsChild = characterChilds.gun.transform;
            foreach (Transform gunObj in gunsChild)
            {
                if (gunObj.childCount > 0)
                {
                    Destroy(gunObj.GetChild(0).gameObject);
                }
            }

            Transform gunChild = null;
            switch (((GunItem)item).gunType)
            {
            case GunType.Pistol:
                gunChild = gunsChild.Find("Pistol");
                break;

            case GunType.Rifle:
                gunChild = gunsChild.Find("Rifle");
                break;

            case GunType.Sniper:
                gunChild = gunsChild.Find("Sniper");
                break;

            case GunType.RPG:
                gunChild = gunsChild.Find("RPG");
                break;

            default:
                break;
            }
            Instantiate(item.prefab, gunChild);
            break;

        case ItemType.Skin:
            characterChilds.skin.GetComponent <SkinnedMeshRenderer>().sharedMesh = item.prefab.GetComponent <SkinnedMeshRenderer>().sharedMesh;
            break;

        case ItemType.Bag:
            characterChilds.bag.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
            break;

        case ItemType.Beard:
            characterChilds.beard.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
            break;

        case ItemType.Hair:
            characterChilds.hair.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
            break;

        case ItemType.Hat:
            characterChilds.hat.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
            break;

        case ItemType.Mask:
            characterChilds.mask.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
            break;

        case ItemType.Pouch:
            characterChilds.pouch.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
            break;

        case ItemType.Scarf:
            characterChilds.scarf.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
            break;

        default:
            break;
        }
    }
예제 #2
0
    private void CreateCharacterItems(GameObject characterObject, PlayerData settings)
    {
        SetCharacterItem(characterObject, gameItems.characterSkins[settings.skin_index]);
        SetCharacterItem(characterObject, gameItems.characterGuns[settings.gun_index]);
        SetCharacterItem(characterObject, gameItems.characterBags[settings.bag_index]);
        SetCharacterItem(characterObject, gameItems.characterBeards[settings.beard_index]);
        SetCharacterItem(characterObject, gameItems.characterHairs[settings.hair_index]);
        SetCharacterItem(characterObject, gameItems.characterHats[settings.hat_index]);
        SetCharacterItem(characterObject, gameItems.characterMasks[settings.mask_index]);
        SetCharacterItem(characterObject, gameItems.characterPouches[settings.pouch_index]);
        SetCharacterItem(characterObject, gameItems.characterScarfs[settings.scarf_index]);

        void SetCharacterItem(GameObject character, BaseItem item)
        {
            CharacterChildren characterChilds = character.GetComponent <CharacterChildren>();

            Mesh itemPrefabMesh = null;

            if (item.itemType != ItemType.Skin && item.itemType != ItemType.Gun)
            {
                if (item.prefab != null)
                {
                    itemPrefabMesh = item.prefab.GetComponent <MeshFilter>().sharedMesh;
                }
            }


            switch (item.itemType)
            {
            case ItemType.Gun:
                Transform gunsChild = characterChilds.gun.transform;
                foreach (Transform gunObj in gunsChild)
                {
                    if (gunObj.childCount > 0)
                    {
                        Destroy(gunObj.GetChild(0).gameObject);
                    }
                }

                Transform gunChild = null;
                switch (((GunItem)item).gunType)
                {
                case GunType.Pistol:
                    gunChild = gunsChild.Find("Pistol");
                    break;

                case GunType.Rifle:
                    gunChild = gunsChild.Find("Rifle");
                    break;

                case GunType.Sniper:
                    gunChild = gunsChild.Find("Sniper");
                    break;

                case GunType.RPG:
                    gunChild = gunsChild.Find("RPG");
                    break;

                default:
                    break;
                }
                Instantiate(item.prefab, gunChild);
                break;

            case ItemType.Skin:
                characterChilds.skin.GetComponent <SkinnedMeshRenderer>().sharedMesh = item.prefab.GetComponent <SkinnedMeshRenderer>().sharedMesh;
                break;

            case ItemType.Bag:
                characterChilds.bag.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
                break;

            case ItemType.Beard:
                characterChilds.beard.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
                break;

            case ItemType.Hair:
                characterChilds.hair.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
                break;

            case ItemType.Hat:
                characterChilds.hat.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
                break;

            case ItemType.Mask:
                characterChilds.mask.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
                break;

            case ItemType.Pouch:
                characterChilds.pouch.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
                break;

            case ItemType.Scarf:
                characterChilds.scarf.GetComponent <MeshFilter>().sharedMesh = itemPrefabMesh;
                break;

            default:
                break;
            }
        }
    }