I'm having trouble connecting Unity to smart contract

Hello,

I’m working on a Unity project called AuthSymbolInteraction. In this project, I’m using the Nethereum library to interact with an Ethereum smart contract.

However, I’m currently encountering the following error:
Exception: Invalid account used signing Nethereum.Web3.Accounts.AccountSignerTransactionManager.SignAndSendTransactionAsync (Nethereum.RPC.Eth.DTOs.TransactionInput transaction) (at <3622c35d266f460b8b595c14132a38c9>:0) Nethereum.Web3.Accounts.AccountSignerTransactionManager.SendTransactionAsync (Nethereum.RPC.Eth.DTOs.TransactionInput transactionInput) (at <3622c35d266f460b8b595c14132a38c9>:0) AuthSymbolInteraction.Start () (at Assets/Scripts/AuthSymbolInteraction.cs:136) System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state) (at <8f02bdf82edc4309b57af878cc7723ff>:0) using UnityEngine;

using Nethereum.Web3;
using Nethereum.Web3.Accounts;
using Nethereum.Contracts;
using System.Threading.Tasks;
using System.Numerics;
using Nethereum.ABI.FunctionEncoding.Attributes;
using Nethereum.RPC.Eth.DTOs;
using System.Linq;

public class AuthSymbolInteraction : MonoBehaviour
{
    public string contractAddress = "address";
    public string contractABI = @"[
        {
            ""inputs"": [
                {
                    ""internalType"": ""uint256"",
                    ""name"": """",
                    ""type"": ""uint256""
                }
            ],
            ""name"": ""users"",
            ""outputs"": [
                {
                    ""internalType"": ""uint256"",
                    ""name"": ""userId"",
                    ""type"": ""uint256""
                },
                {
                    ""internalType"": ""uint256"",
                    ""name"": ""symbolId"",
                    ""type"": ""uint256""
                },
                {
                    ""internalType"": ""bool"",
                    ""name"": ""exists"",
                    ""type"": ""bool""
                }
            ],
            ""stateMutability"": ""view"",
            ""type"": ""function"",
            ""constant"": true
        },
        {
            ""inputs"": [
                {
                    ""internalType"": ""uint256"",
                    ""name"": ""userId"",
                    ""type"": ""uint256""
                },
                {
                    ""internalType"": ""uint256"",
                    ""name"": ""symbolId"",
                    ""type"": ""uint256""
                }
            ],
            ""name"": ""setSymbol"",
            ""outputs"": [],
            ""stateMutability"": ""nonpayable"",
            ""type"": ""function""
        },
        {
            ""inputs"": [
                {
                    ""internalType"": ""uint256"",
                    ""name"": ""userId"",
                    ""type"": ""uint256""
                },
                {
                    ""internalType"": ""uint256"",
                    ""name"": ""symbolId"",
                    ""type"": ""uint256""
                }
            ],
            ""name"": ""checkSymbol"",
            ""outputs"": [
                {
                    ""internalType"": ""bool"",
                    ""name"": """",
                    ""type"": ""bool""
                }
            ],
            ""stateMutability"": ""view"",
            ""type"": ""function"",
            ""constant"": true
        },
        {
            ""inputs"": [
                {
                    ""internalType"": ""uint256"",
                    ""name"": ""userId"",
                    ""type"": ""uint256""
                }
            ],
            ""name"": ""userExists"",
            ""outputs"": [
                {
                    ""internalType"": ""bool"",
                    ""name"": """",
                    ""type"": ""bool""
                }
            ],
            ""stateMutability"": ""view"",
            ""type"": ""function"",
            ""constant"": true
        }
    ]";

    public uint userId = 3;
    public uint symbolId = 3;

    private async void Start()
    {
        var url = "http://127.0.0.1:7545";
        var privateKey = "private key";
        var account = new Account(privateKey);
        var web3 = new Web3(account, url);
        var contract = web3.Eth.GetContract(contractABI, contractAddress);

        var setSymbolFunction = new SetSymbolFunction()
        {
            UserId = userId,
            SymbolId = symbolId
        };

        var encodedSetSymbolFunction = setSymbolFunction.GetCallData();
        var hexEncodedSetSymbolFunction = "0x" + string.Concat(encodedSetSymbolFunction.Select(x => x.ToString("x2")));

        var transactionInput = new TransactionInput()
        {
            To = contractAddress,
            Data = hexEncodedSetSymbolFunction
        };

        var transactionHash = await web3.Eth.TransactionManager.SendTransactionAsync(transactionInput);

        Debug.Log("setSymbol Transaction Hash: " + transactionHash);

        var checkSymbolFunction = new CheckSymbolFunction()
        {
            UserId = userId,
            SymbolId = symbolId
        };

        var checkSymbolResult = await contract.GetFunction("checkSymbol").CallAsync<bool>(contractAddress, checkSymbolFunction);

        Debug.Log("Symbol Exists: " + checkSymbolResult);

        var userExistsFunction = new UserExistsFunction()
        {
            UserId = userId
        };

        var userExistsResult = await contract.GetFunction("userExists").CallAsync<bool>(contractAddress, userExistsFunction);

        Debug.Log("User Exists: " + userExistsResult);

    }
}



[Function("setSymbol")]
public class SetSymbolFunction : FunctionMessage
{
    [Parameter("uint256", "userId", 1)]
    public BigInteger UserId { get; set; }

    [Parameter("uint256", "symbolId", 2)]
    public BigInteger SymbolId { get; set; }
}

public class CheckSymbolFunction : FunctionMessage
{
    [Parameter("uint256", "userId", 1)]
    public BigInteger UserId { get; set; }

    [Parameter("uint256", "symbolId", 2)]
    public BigInteger SymbolId { get; set; }
}

public class UserExistsFunction : FunctionMessage
{
    [Parameter("uint256", "userId", 1)]
    public BigInteger UserId { get; set; }
}