コード例 #1
0
        private void Awake()
        {
            Instance = this;

            logbookBodyOptions = MapBodiesToOptions(
                SurvivorCatalog.orderedSurvivorDefs.Select(survivorDef => BodyCatalog.GetBodyPrefabBodyComponent(SurvivorCatalog.GetBodyIndexFromSurvivorIndex(survivorDef.survivorIndex)))
                .Union(BodyCatalog.allBodyPrefabBodyBodyComponents.Where(characterBody => characterBody && characterBody.GetComponent <DeathRewards>()?.logUnlockableDef)));

            allBodyOptions = MapBodiesToOptions(BodyCatalog.allBodyPrefabBodyBodyComponents);

            dropdown.Options = logbookBodyOptions;

            (dropdown.OnItemSelected ?? (dropdown.OnItemSelected = new SearchableDropdown.DropdownEvent())).AddListener(SelectModel);

            List <SearchableDropdown.OptionData> MapBodiesToOptions(IEnumerable <CharacterBody> bodies)
            {
                return(bodies
                       .Select(characterBody => (characterBody, characterModel: characterBody.GetComponentInChildren <CharacterModel>()))
                       .Where(el => el.characterModel)
                       .Select(el =>
                {
                    var modelInfo = new ModelPrefabInfo
                    {
                        modelPrefab = el.characterModel.gameObject,
                        bodyName = el.characterBody.name,
                        modelName = el.characterModel.name,
                        localizedBodyName = Language.GetString(el.characterBody.baseNameToken),
                        characterBody = el.characterBody
                    };
                    return new SearchableDropdown.OptionData(modelInfo, $"{modelInfo.localizedBodyName} || {modelInfo.bodyName} || {modelInfo.modelName}");
                })
                       .ToList());
            }
        }
コード例 #2
0
 private void OnDestroy()
 {
     Instance = null;
 }