void OnMouseDrag() { //屏幕空间拖拽 //float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z; //transform.position = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen)); //float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z; //Vector3 pos_move = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen)); //transform.position = new Vector3(pos_move.x, transform.position.y, pos_move.z); ///立体空间拖拽 // Bit shift the index of the layer (8) to get a bit mask int layerMask = 1 << 9; // This would cast rays only against colliders in layer 8. // But instead we want to collide against everything except layer 8. The ~ Operator does this, it inverts a bitmask. layerMask = ~layerMask; RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask)) { transform.position = new Vector3(hit.point.x, transform.position.y, hit.point.z); } }
新闻热点
疑难解答