using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bird : MonoBehaviour
{
private bool isClick = false;
private void OnMouseDown() //滑鼠按下
{
isClick = true;
}
private void OnMouseUp() //滑鼠抬起
{
isClick = false;
}
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if(isClick)//滑鼠一直按下,就進行位置的跟隨
{
transform.position = Camera.main.SceenToWorldPoint(Input.mousePosition);
transform.position += new Vector3(0, 0, 10);
}
}
}
代碼有問題嗎 而且運行有錯
uj5u.com熱心網友回復:
有問題1、判斷滑鼠按下不需要這么麻煩,直接再Update中呼叫Input.GetMouseButton(0)即可。
2、Camera.main.ScreenToWorldPoint,不是這么用的。螢屏點無法直接轉換到世界坐標,因為螢屏是2維的,理論上轉到世界坐標是一根線,而不是一個點。應該使用射線檢測,使用一條從攝像機出發,經過滑鼠點的射線,去檢測所碰到的目標物體(比如地面),以碰撞點為基準,再去執行你那個位移的代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/268993.html
標籤:Unity3D
上一篇:Windbg preview怎么設定過濾資訊找好久沒找到
下一篇:飛機大戰子彈軌跡
