private void GeneratePlayer(int gamepadNumber) { if (AllocatedGamepads.Count < MaxPlayerCount) { var newDef = new PlayerDefinition() { AssignedGamepad = gamepadNumber }; AllocatedGamepads.Add(gamepadNumber, newDef); if (PlayerDefinitionEditorPrefab.IsAvailable) { var newEditor = PlayerDefinitionEditorPrefab.Res.Instantiate(); var editor = newEditor.GetComponent <PlayerDefinitionEditor>(); editor.PlayerDef = newDef; for (int i = 1; i < AllocatedGamepads.Count; i++) { newDef.NextColor(); } newDef.Editor = editor; Editors.Add(editor); Editors.Sort(Comparer <PlayerDefinitionEditor> .Create((one, two) => { return(one.PlayerDef.AssignedGamepad.CompareTo(two.PlayerDef.AssignedGamepad)); })); Scene.Current.AddObject(newEditor); } } }