[英]Get information from another method in the same class C# Unity3d
BI是C#和Im的新手,這真的使如何從一個方法中獲取信息,然后在同一類的另一個方法中使用該信息感到困惑。
到目前為止,我已經有了這個腳本
public class DragDropBehaviour : MonoBehaviour
{
private Vector3 screenPoint;
private Vector3 offset;
void OnMouseDown()
{
screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position);
offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
Debug.Log("Clicked "+gameObject.name);
}
public void OnMouseDrag()
{
Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint)+offset;
transform.position = curPosition;
var objectPosition = curPosition;
}
}
活動結束后,我想使用OnMouseDrag執行以下操作:
void OnMouseUp()
{
Debug.Log("GameObject is now at "+onMouseDrag.objectPosition);
}
但是我似乎無法理解如何從OnMouseDrag中的curPosition中獲取信息。
我如何以一種簡單的方式解決此問題?
只需移動objectPosition
變量,所以它是一個類實例,而不是方法實例。
public class DragDropBehaviour : MonoBehaviour
{
private Vector3 screenPoint;
private Vector3 offset;
private Vector3 ObjectPosition;
現在,可以將OnMouseDrag()
事件分配給它,並且可以從中讀取OnMouseUp
事件。
public void OnMouseDrag()
{
Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint)+offset;
...
ObjectPosition = curPosition;
}
void OnMouseUp()
{
Debug.Log(string.Concat("GameObject is now at ", ObjectPosition));
}
通常,如果您想返回一個值,則您的方法將具有返回類型,但是事件沒有返回類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.