// adds and gets the player public PlayerObject AddAndGetPlayer(int number, GameBuilder.playables newPlayer, bool controllable) { // playerList.Add(newPlayer); // adds the player BuilderPlayer bp = new BuilderPlayer(); bp.number = number; bp.character = newPlayer; bp.controllable = controllable; bp.destorySaved = true; bp.useMainCam = (playerList.Count == 0) ? true : false; bp.targetDisplay = playerList.Count; // gets the created player // if (manager != null) // return manager.CreatePlayer(number, newPlayer, true, false); // else // return null; // adds to list. playerList.Add(bp); // gets the created player if (manager != null) { return(manager.CreatePlayer(number, newPlayer, bp.controllable, bp.destorySaved, bp.useMainCam, bp.targetDisplay)); } else { return(null); } }
// adds a player to the game builder. public PlayerObject AddAndGetPlayer(int number, GameBuilder.playables newPlayer, bool controllable, bool destroySaved, bool useMainCam, int targetDisplay) { // sets values BuilderPlayer bp = new BuilderPlayer(); bp.number = number; bp.character = newPlayer; bp.controllable = controllable; bp.destorySaved = destroySaved; bp.useMainCam = useMainCam; bp.targetDisplay = targetDisplay; // adds to list. playerList.Add(bp); // create player and return it. if (manager != null) { return(manager.CreatePlayer(bp.number, bp.character, bp.controllable, bp.destorySaved, bp.useMainCam, bp.targetDisplay)); } else { return(null); } }
// adds a player to the game builder. public void AddPlayer(int number, GameBuilder.playables newPlayer, bool controllable) { // playerList.Add(newPlayer); // // // // TODO: change point where players are created to be when the scene starts. // if (manager != null) // manager.CreatePlayer(number, newPlayer, true, false); // sets values BuilderPlayer bp = new BuilderPlayer(); bp.number = number; bp.character = newPlayer; bp.controllable = controllable; bp.destorySaved = true; bp.useMainCam = (playerList.Count == 0) ? true : false; bp.targetDisplay = playerList.Count; // adds to list. playerList.Add(bp); // create player if (manager != null) { manager.CreatePlayer(bp.number, bp.character, bp.controllable, bp.destorySaved, bp.useMainCam, bp.targetDisplay); } }
// creates the players (match builder variant) - will replace other variant public PlayerObject CreatePlayer(int number, MatchBuilder.playables type, bool controllable, bool destroySaved, bool useMainCamera, int targetDisplay = 0) { GameBuilder.playables gbp = GameBuilder.playables.none; // goes through each type switch (type) { case MatchBuilder.playables.none: // none gbp = GameBuilder.playables.none; break; case MatchBuilder.playables.dog: // dog gbp = GameBuilder.playables.dog; break; case MatchBuilder.playables.cat: // cat gbp = GameBuilder.playables.cat; break; case MatchBuilder.playables.bunny: // bunny gbp = GameBuilder.playables.bunny; break; case MatchBuilder.playables.turtle: // turtle gbp = GameBuilder.playables.turtle; break; } return(CreatePlayer(number, gbp, controllable, destroySaved, useMainCamera, targetDisplay)); }
// adds a player to the game builder. public void AddPlayer(int number, GameBuilder.playables newPlayer, bool controllable, bool destroySaved, bool useMainCam, int targetDisplay) { // sets values BuilderPlayer bp = new BuilderPlayer(); bp.number = number; bp.character = newPlayer; bp.controllable = controllable; bp.destorySaved = destroySaved; bp.useMainCam = useMainCam; bp.targetDisplay = targetDisplay; // adds to list. playerList.Add(bp); // create player if (manager != null) { manager.CreatePlayer(bp.number, bp.character, bp.controllable, bp.destorySaved, bp.useMainCam, bp.targetDisplay); } }
// public int; // creates the players. // if 'useMainCamera' is set to true, then the player uses the main camera (default view). Otherwise a new camera is made. // the target display is used to determine which camera to use. public PlayerObject CreatePlayer(int number, GameBuilder.playables type, bool controllable, bool destroySaved, bool useMainCamera, int targetDisplay = 0) { // new player GameObject newPlayer; // type switch (type) { case GameBuilder.playables.dog: newPlayer = Instantiate((GameObject)Resources.Load("Prefabs/Characters/Dog Player")); break; case GameBuilder.playables.cat: newPlayer = Instantiate((GameObject)Resources.Load("Prefabs/Characters/Cat Player")); break; case GameBuilder.playables.bunny: newPlayer = Instantiate((GameObject)Resources.Load("Prefabs/Characters/Bunny Player")); break; case GameBuilder.playables.turtle: newPlayer = Instantiate((GameObject)Resources.Load("Prefabs/Characters/Turtle Player")); break; case GameBuilder.playables.none: default: newPlayer = Instantiate((GameObject)Resources.Load("Prefabs/Characters/Player")); break; } // player object values PlayerObject px = newPlayer.GetComponent <PlayerObject>(); number = Mathf.Clamp(number, 0, 4); px.SetPlayerNumber(number); px.ParentIconToPlayerSpace(); // px.playerNumber = number; // the player is controllable px.controllablePlayer = controllable; // Player Camera { // used to check and see if the main camera is available. bool mainCamUsed = false; // camera objects GameObject camObject = null; // game object Camera camComp = null; // camera component FollowerCamera fwr = null; // folloer componetn // use main camera if (useMainCamera) { camObject = GameObject.Find("Main Camera"); // finds the cam object. if (camObject != null) { // gets camera object. camComp = camObject.GetComponent <Camera>(); // the camera is not equal to null, which mean the main cam exists. if (camComp != null) { // gets follower camera fwr = camObject.GetComponent <FollowerCamera>(); // follower component exists if (fwr != null) { px.SetFollowerCamera(fwr); // sets follower component mainCamUsed = true; // camera found and used } else { Debug.LogError("Main camera did not have follower component. Generating new camera."); } } else { Debug.LogError("Camera component on Main Camera object not found. Generating new camera."); } } else { Debug.LogError("Main camera object not found. Generating new camera."); } } if (!useMainCamera || !mainCamUsed) // creates another camera specifically for this player { // gets instance of camera camObject = Instantiate((GameObject)Resources.Load("Prefabs/Player Camera")); // gets camera component camComp = camObject.GetComponent <Camera>(); // gets follower camera fwr = camObject.GetComponent <FollowerCamera>(); px.SetFollowerCamera(fwr); } // sets the target display // target display defaults to 0. if (camComp != null) { camComp.targetDisplay = targetDisplay; } } // original camera setup // // if the number is greater than 0, set the target display to it. // if (number > 0 && !useMainCamera) // { // // TODO: playerCamera has not been set for some reason. // // camera object. // // it's done this way just in case the follower camera isn't set yet. // Camera cam = px.GetFollowerCamera().GetCamera(); // // // change target display // if(cam != null) // cam.targetDisplay = number; // } // else // use main camera // { // GameObject camObject = GameObject.Find("Main Camera"); // Camera camComp = camObject.GetComponent<Camera>(); // FollowerCamera fwr = px.SetFollowerCamera(camComp); // } // saves the player object // also increases player count if no player object was assigned yet. switch (number) { case 1: default: if (p1 == null) { playerCount++; } if (destroySaved) { Destroy(p1); } p1 = px; break; case 2: if (p2 == null) { playerCount++; } if (destroySaved) { Destroy(p2); } p2 = px; break; case 3: if (p3 == null) { playerCount++; } if (destroySaved) { Destroy(p3); } p3 = px; break; case 4: if (p4 == null) { playerCount++; } if (destroySaved) { Destroy(p4); } p4 = px; break; } // returns the player object script return(px); }
// updates player icons public void UpdateIcons() { // player list List <PlayerObject> players = new List <PlayerObject>(); // adds the four players players.Add(p1); players.Add(p2); players.Add(p3); players.Add(p4); // goes through all players for (int i = 0; i < players.Count; i++) { // no player available if (players[i] == null) { continue; } // the texture image Texture2D img = null; // the players GameBuilder.playables type = players[i].GetPlayerType(); // TODO: check and see which one is less intensive. // ver 1. - check type switch (type) { case GameBuilder.playables.none: // none (use default) break; case GameBuilder.playables.dog: img = dogIcon; break; case GameBuilder.playables.cat: img = catIcon; break; case GameBuilder.playables.bunny: img = bunnyIcon; break; case GameBuilder.playables.turtle: img = turtleIcon; break; } // ver 2. - downcast check // if (players[i] is DogPlayer) // dog // { // img = dogIcon; // } // else if (players[i] is CatPlayer) // cat // { // img = catIcon; // } // else if (players[i] is BunnyPlayer) // bunny // { // img = bunnyIcon; // } // else if (players[i] is TurtlePlayer) // turtle // { // img = turtleIcon; // } // image was found if (img != null) { switch (i) { case 0: // p1 if (p1Image != null) { p1Image.texture = img; } break; case 1: // p2 if (p2Image != null) { p2Image.texture = img; } break; case 2: // p3 if (p3Image != null) { p3Image.texture = img; } break; case 3: // p4 if (p4Image != null) { p4Image.texture = img; } break; } } } }