我目前正在研究一個可以拾取項目的腳本,並通過單擊鼠標左鍵來放置它。我也計劃添加旋轉項目和一些圖標來顯示每當我做這些行動之一。當我從地面上選擇一個對象時,我的腳本會做一些意想不到的事情
我目前對這個很新,所以我可能會在深度上自嘲。但我想嘗試。
這裏是我的代碼:
public class PickUp : MonoBehaviour {
public Transform onHand;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
if(Input.GetMouseButton(1)){
this.transform.position = onHand.position;
}
}
void OnMouseDown() {
GetComponent<Rigidbody>().useGravity = false;
this.transform.position = onHand.position;
this.transform.parent = GameObject.Find("Player").transform;
}
void OnMouseUp() {
this.transform.parent = null;
GetComponent<Rigidbody>().useGravity = true;
}
}
到目前爲止,這樣的工作。我已經有些麻煩拿起我的對象,它並不總是讓着我。在它真正獲得對象之前,我必須點擊幾次。當它發生時,物體開始向上飛,出現一些我不明白的奇怪原因。我仍然堅持下去,我仍然可以隨身攜帶,只要我放開它就會掉下來。
onHand變量包含一個gameObject,即放置對象的位置。是的,當我使用Kinematic時,它會停止向上流動,但問題在於,當我放棄它時:它會穿過地面一半。 – Athax
您是否嘗試了我描述的所有選項?用這種有限的信息很難調試你的項目。事實發生在中途可能是由於多種原因造成的。我需要查看當你「丟棄」它時對象的位置,對撞機的設置方式,地板對撞機的設置方式,是否有任何處理其位置或對撞機設置的額外代碼,如果你移動它通過編輯備份在地板上,當它釋放時它是否仍然存在。等。 – irreal
這可能會幫助你,幫助我:https://join.me/302-917-789這是一個屏幕共享。 – Athax