public bool SpawnPlayer(PlayerDataAsset _playerData) { var comp = Component.FindObjectOfType <UIDropZone>(); var pos = Camera.main.ScreenToWorldPoint(Input.mousePosition); bool inDropZone = RectTransformUtility.RectangleContainsScreenPoint(comp.GetComponent <RectTransform>(), pos); if (!inDropZone) { return(false); } //Spawn player CmdSpawnPlayer(_playerData.name, pos.x, pos.y, IsMainTeam); return(true); }
void CmdSpawnPlayer(string _playerDataName, float x, float y, bool _mainTeam) { PlayerDataAsset data = Instantiate(Resources.Load("data/" + _playerDataName)) as PlayerDataAsset; var player = Instantiate(Resources.Load("prefabs/players/" + data.PrefabPath)) as GameObject; Utils.SetPositionX(player.transform, x); Utils.SetPositionY(player.transform, y); //Set values var playerComponent = player.GetComponent <PlayerComponent>(); playerComponent.PlayerDataName = _playerDataName; playerComponent.IsMainTeam = _mainTeam; NetworkServer.Spawn(player); //Add to game manager FindObjectOfType <GameManager>().AddPlayer(playerComponent); player.transform.SetParent(transform, false); }
public override void OnStartClient() { base.OnStartClient(); var spawnManager = new List <PlayerSpawnManager>(Component.FindObjectsOfType <PlayerSpawnManager>()) { }.Find(x => x.isLocalPlayer); if (spawnManager != null) { m_playerData = Instantiate(Resources.Load("data/" + playerDataName)) as PlayerDataAsset; //if the same team if (spawnManager.IsMainTeam == IsMainTeam) { m_renderer.sprite = m_playerData.imageA; } else { m_renderer.sprite = m_playerData.imageB; } CurrentHealth = m_playerData.MaxLife; playerStateMachine = GetComponent <PlayerStateMachineComponent>(); } }
public static void CreateData() { PlayerDataAsset asset = ScriptableObject.CreateInstance <PlayerDataAsset>(); string path = AssetDatabase.GetAssetPath(Selection.activeObject); if (path == "") { path = "Assets"; } else if (Path.GetExtension(path) != "") { path = path.Replace(Path.GetFileName(AssetDatabase.GetAssetPath(Selection.activeObject)), ""); } string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/New " + typeof(PlayerDataAsset).ToString() + ".asset"); AssetDatabase.CreateAsset(asset, assetPathAndName); AssetDatabase.SaveAssets(); EditorUtility.FocusProjectWindow(); Selection.activeObject = asset; }