標籤:data 比例 tar object start 小例子 控制 float upd
1.物體移動到滑鼠點擊處
2.物體跟隨滑鼠移動
分為三步:擷取滑鼠位置、轉化為全局座標、物體移動
private Vector3 mopos;
private Vector3 gamepos;
void Start(){
//物體的全局座標轉化成螢幕座標
//gamepos = Camera.main.WorldToScreenPoint (transform.position);
gamepos = transform.position;
}
void Update () {
//物體移動到滑鼠點擊處
if (Input.GetMouseButtonDown (0)) {
mopos = Input.mousePosition;//擷取滑鼠位置
//轉化物體世界z座標為螢幕座標並賦值給滑鼠z座標
mopos.z=Camera.main.WorldToScreenPoint( transform.position).z;
//將需要的滑鼠座標轉化成全局座標
gamepos.x=Camera.main.ScreenToWorldPoint(mopos).x;
gamepos.z=Camera.main.ScreenToWorldPoint(mopos).z;
gamepos.y=transform.position.y;
}
//讓物體移動到座標處
transform.position = Vector3.Lerp (gameObject.transform.position,gamepos,Time.deltaTime*5f);
//朝向某處
//transform.LookAt (gamepos);
}
Ps:一個小例子,準星在螢幕中跟隨滑鼠移動
void Updata(){
mopos = Input.mousePosition;//擷取滑鼠位置
//調整位置比例
mopos.x /= 823.0f;
mopos.y /= 600.0f;
//移動
transform.position = Vector3.Lerp (gameObject.transform.position,mopos,Time.deltaTime*30f);
}
//物體朝向滑鼠方向旋轉
//擷取滑鼠增量
float h = Input.GetAxis("Mouse X");
float v = Input.GetAxis("Mouse Y");
//旋轉
transform.Rotate(v, h, 0);
滑鼠控制物體移動