protected override void Init() { if (string.IsNullOrEmpty(Player_.Nickname)) { Player_.Nickname = RegisteredPlayers.GetDefaultNicknameFor(Player_); } if (Player_.Skin == null) { Player_.Skin = RegisteredPlayersUtil.GetBestRandomSkin(); } GameObject skinSelectionContainer = GameObjectUtil.FindRequired("SkinSelectionContainer"); SkinSelectable currentSelectable = skinSelectionContainer.GetComponentsInChildren <SkinSelectable>().First(s => s.Skin == Player_.Skin); selectionView_ = ObjectPoolManager.CreateView <ElementSelectionView>(GamePrefabs.Instance.ElementSelectionViewPrefab); selectionView_.Init(Player_, skinSelectionContainer, startSelectable: currentSelectable); selectionView_.OnSelectableHover += HandleSelectableHover; selectionView_.OnSelectableSelected += HandleSelectableSelected; // we're selecting skins right now selectingSkinMap_[Player_] = true; OnSelectedSkinsDirty.Invoke(); }