问题描述
我正在开发一款游戏,但遇到了一个障碍。游戏运行良好。每当玩家完成游戏时,我都希望将分数发送到我的电子邮件地址。
该游戏将在 itch.io 上托管。游戏持续 60 秒,然后出现一个游戏结束面板,向用户显示他的分数。那时我希望分数也通过电子邮件发送给我。 那可能吗? 如果没有,任何可以实现我的目标的替代方法(能够看到每个用户的分数)。
谢谢
解决方法
当然,您应该可以使用此代码。只需创建一个名为 SendEmail.cs 的文件并将其放在您的 /Scripts 文件夹中。这假设您是joker@gmail.com(密码= justjokering)并将电子邮件发送给自己。您可以从另一个文件中调用它,也许您可以使用以下方法计算分数变量:
SendEmail.SendResults("joker@gmail.com","emailBodyText","emailSubjectText");
这里是 SendEmail.cs 文件的内容:
using System.Net;
using System.Net.Mail;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using UnityEngine;
using System.IO;
using UnityEngine.UI;
using System;
using System.Collections.Generic;
public class SendEmail : MonoBehaviour
{
public string subject = "New Score Acquired";
public string body = "putyourscoreASASTRINGhere";
public string password = "";
public void SendResults(string toAddress,string bodyText,string subjectText)
{
WriteDataFile(subjectText,bodyText);
MailMessage mail = new MailMessage();
mail.From = new MailAddress("joker@gmail.com");
mail.To.Add(toAddress);
mail.Subject = subjectText;
mail.Body = bodyText;
//var fileToAttach = GetComponent<realPicVerifApp>().logFilePathLocal;
//mail.Attachments.Add(new Attachment(sshotlocation));
SmtpClient smtpServer = new SmtpClient("smtp.gmail.com");
smtpServer.Port = 587;
smtpServer.Credentials = new System.Net.NetworkCredential("joker@gmail.com","justjokering") as ICredentialsByHost;
smtpServer.EnableSsl = true;
ServicePointManager.ServerCertificateValidationCallback =
delegate (object s,X509Certificate certificate,X509Chain chain,SslPolicyErrors sslPolicyErrors)
{ return true; };
smtpServer.Send(mail);
Debug.Log("success");
}
}