【发布时间】:2015-06-10 23:01:31
【问题描述】:
我有问题。我在 Unity 3D (c#) 中做一个项目,一个 3D 世界编辑器。我的问题是我想通过选择多个对象来移动它们。我设法用鼠标光标移动了一个,但是对于多个我失败了:D 这是我的移动代码:
public class ClickAndDrag : MonoBehaviour {
private RaycastHit raycastHit;
private GameObject Gobj;
private float distance;
private Vector3 ObjPosition;
private bool Bobj;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
if (Input.GetMouseButton (0)) {
var ray = GetComponent<Camera> ().ScreenPointToRay (Input.mousePosition);
var hit = Physics.Raycast (ray.origin, ray.direction, out raycastHit);
if (hit && !Bobj) {
Gobj = raycastHit.collider.gameObject;
distance = raycastHit.distance;
Debug.Log (Gobj.name);
}
Bobj = true;
ObjPosition = ray.origin + distance * ray.direction;
Gobj.transform.position = new Vector3 (ObjPosition.x, ObjPosition.y, ObjPosition.z);
} else {
Bobj = false;
Gobj = null;
}
}
}
感谢您的帮助!
【问题讨论】:
-
这仅用于移动单个对象。您在移动多个对象时面临哪些问题?您没有在问题中指定这一点。
-
我不知道该怎么做,因为当我移动一个对象时,我用鼠标来做这个,但我不能为多个对象做这个