我想在两个脚本中使用一个int并在第二个脚本中减少它

问题描述

我想在两个脚本中使用此int:Dim FailedMessage As String = "This COPDI (On-Line) user failed: " Dim PassedMessage As String = "This COPDI (On-Line) user passes: " Dim ClassName As String = "COPDI (FAILED)" Dim SendMailAddress As String = "myEmailAddress.com" Dim SubsiteConnString As String = "Subsite_appSettings" Dim MainsiteConnString As String = "SubsiteConn" Dim RecordsReturned As Integer = 0 Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load Dim UserName As String = User.Identity.Name() Dim userID As Integer = GetUID(UserName) Dim ClassDate As Date = DateTime.Now.AddHours(3).ToShortDateString Dim ClassTime As String = DateTime.Now.AddHours(3). ToShortTimeString If Not Page.IsPostBack Then If Request.QueryString("code") = 1111 Then RecordsReturned = RecordExist(UserName) CreateEnrollment(UserName,ClassDate,ClassTime,ClassName,userID) UpdateLastActivityDate(UserName) If RecordsReturned < 3 Then Response.Redirect("~/transcript.aspx" & "?code=" & RecordsReturned) Else Response.Redirect("~/transcript.aspx" & "?code=" & "more_than_three") End If End If End If End Sub Public Sub CreateEnrollment(ByVal UserName As String,ByVal ClassDate As Date,ByVal ClassTime As String,ByVal ClassName As String,ByVal UID As Integer) Dim connStr As String = ConfigurationManager.AppSettings.Get(SubsiteConnString) Dim conn As New Data.OleDb.OleDbConnection(connStr) Try conn.Open() Dim sql As String = "INSERT INTO EnrollmentsTbl (" & _ "[UserName],[SubmitTime],[ClassTime],[ClassDate],[Enrolled],[ClassName],[Instructor],[DateCompleted],[Completed],[WaitListed],[UID]) " & _ "VALUES (@UserName,@SubmitTime,@ClassTime,@ClassDate,@Enrolled,@ClassName,@Instructor,@DateCompleted,@Completed,@WaitListed,@UID) " Dim comm As New Data.OleDb.OleDbCommand(sql,conn) comm.Parameters.AddWithValue("@UserName",UserName) comm.Parameters.AddWithValue("@SubmitTime",DateTime.Now.AddHours(3).ToString()) comm.Parameters.AddWithValue("@ClassTime",ClassTime) comm.Parameters.AddWithValue("@ClassDate",ClassDate) comm.Parameters.AddWithValue("@Enrolled",True) comm.Parameters.AddWithValue("@ClassName",ClassName) comm.Parameters.AddWithValue("@Instructor","On-line") comm.Parameters.AddWithValue("@DateCompleted",DateTime.Now.AddHours(3).ToString) comm.Parameters.AddWithValue("@Completed",False) comm.Parameters.AddWithValue("@WaitListed",False) comm.Parameters.AddWithValue("@UID",UID) Dim result As Integer = comm.ExecuteNonQuery() Catch ex As Exception Response.Write(ex) Finally conn.Close() End Try End Sub Public Function RecordExist(ByVal username As String) As Integer Dim connStr As String = ConfigurationManager.AppSettings.Get(SubsiteConnString) Dim conn As New Data.OleDb.OleDbConnection(connStr) Dim sql As String = "SELECT COUNT(*) FROM EnrollmentsTbl " & _ "WHERE [UserName] = """ & username & """ AND ClassName LIKE """ & ClassName & """ AND [Completed] = 0 AND [Enrolled] = -1" Dim DBCommand As New Data.OleDb.OleDbCommand(sql,conn) Try conn.Open() Dim RecordCount As Integer = CInt(DBCommand.ExecuteScalar()) conn.Close() Return RecordCount Catch ex As Exception Response.Write(ex) Finally conn.Close() End Try End Function Public Function GetUID(ByVal username As String) As Integer Dim xUserName As String = User.Identity.Name() If (Not xUserName="") Then Dim objConn As Data.OleDb.OleDbConnection Dim objCmd As Data.OleDb.OleDbCommand Dim objRdr As Data.OleDb.OleDbDataReader Dim userAN As String Dim strConnection As String = ConfigurationManager.ConnectionStrings("TechTrainingConn").ToString objConn = New Data.OleDb.OleDbConnection(strConnection) objCmd = New Data.OleDb.OleDbCommand("SELECT * FROM UsersDataTbl WHERE [UserName] = """ & xUserName & """",objConn) Try objConn.Open() objRdr = objCmd.ExecuteReader() While objRdr.Read() userAN = objRdr.Item("UID") End While objRdr.Close() objConn.Close() Session("userID") = userAN Return userAN 'Response.Write(Session("userAN") & " - " & xUserName) Catch ex As Exception Response.Write(ex) Finally objConn.Close() End Try End If End Function 我希望两个脚本中的int值都相同。

这是我的第一个脚本:

public int wood;

这是我要在木头中使用的第二个脚本:

public class Tree : 
  
MonoBehaviour { public int wood;
    
     private void OnTriggerEnter2D(Collider2D collision)
     {
         wood += 1;
     }
    }

我想降低public class Base : MonoBehaviour { private void OnTriggerEnter2D(Collider2D collision) { } } 中的木材价值。我该怎么办?

解决方法

您可以将按钮组件添加到游戏对象中。(要在代码中使用此组件,请使用Button btn = Gameobject.GetComponent<Button>();。要检测对按钮的单击,可以使用按钮具有的onclick事件。

void Start(){
    btn.onClick.AddListener(ButtonClicked);
}
void ButtonClicked(){
    //code
}

您还可以添加OnMouseDownOnMouseUp函数来创建按钮(这仅需要对撞机组件,而无需按钮组件。

void OnMouseDown(){
    clicking = true;
}
void OnMouseUp(){
    clicking = false;
}
,

单击按钮时将引发事件。 因此,您需要注册此事件触发时要执行的操作。

有多种方法,但其中一种可能是:

buttonVariable.onClick.AddListener(OnButtonDoSomething);

使用lambda expresion将是:

button.onClick.AddListener(() => OnButtonDoSomething());

因此,您需要在任何脚本中的StartOnEnableAwake方法中对此进行声明。然后有一个Button引用,以便您可以存储buttonVariable并最终声明方法OnButtonDoSomething

为满足您的问题,您将存储一个名为buttonGotClicked的布尔变量,并在新创建的方法中,将该布尔值设置为:

private void OnButtonDoSomething()
{
    buttonGotClicked = true;
}

然后您可以if(buttonGotClicked)...

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...