print("射线" + e.target.name);
//射线射中后判定物体标签是否为拾取物品(物体标签自设)
if (e.target.gameObject.tag == "pickup") { obj_pickup = e.target.gameObject; ispickup = true; } } /// <summary> /// 射线离开事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void OnPointerOut(object sender, PointerEventArgs e) { //射线离开后就物体置空 ispickup = false; } /// <summary> /// 扳机扣下事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void OnTriggerClicked(object sender, ClickedEventArgs e) {print("扳机被按下!!");
//是否为可拾取,是就将物体父节点设置为手柄并置为原点,将物体重力关闭,拿到手柄上
if(ispickup) { obj_pickup.transform.SetParent(this.transform); obj_pickup.GetComponent<Rigidbody>().useGravity = false; obj_pickup.transform.localPosition = Vector3.zero; } else { Debug.Log("没有物体"); } } /// <summary> /// 扳机抬起事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void OnTriggerUnclicked(object sender, ClickedEventArgs e) {print("扳机被抬起!!");
//扳机抬起后,如果是拾取状态就将物体父节点设为地面,并将刚体组件添加重力,物体自由落体
if(ispickup) { obj_pickup.transform.SetParent(plane.transform); obj_pickup.GetComponent<Rigidbody>().useGravity = true; obj_pickup = null; } } }