コード例 #1
0
    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);
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    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>();
        }
    }
コード例 #4
0
    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;
    }