第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

unity3d中怎么實(shí)現(xiàn)鼠標(biāo)控制物體

unity3d中怎么實(shí)現(xiàn)鼠標(biāo)控制物體

慕桂英3389331 2018-11-05 18:04:55
unity3d中怎么實(shí)現(xiàn)鼠標(biāo)控制物體
查看完整描述

1 回答

?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

解決思路就是將世界坐標(biāo)轉(zhuǎn)換成屏幕坐標(biāo),然后計(jì)算物體與鼠標(biāo)之間移動量,循環(huán)鼠標(biāo)被按下操作,得到鼠標(biāo)的當(dāng)前位置,加上計(jì)算好的移動量,將新的坐標(biāo)賦值給物理就行了。主要是開啟一個(gè)協(xié)同程序(Corountine)來處理
主要代碼如下:
// Use this for initialization
void Start ()
{
StartCoroutine(OnMouseDown());
}

IEnumerator OnMouseDown()
{
//將物體由世界坐標(biāo)系轉(zhuǎn)換為屏幕坐標(biāo)系
Vector3 screenSpace = Camera.main.WorldToScreenPoint(transform.position);//三維物體坐標(biāo)轉(zhuǎn)屏幕坐標(biāo)
//完成兩個(gè)步驟 1.由于鼠標(biāo)的坐標(biāo)系是2維,需要轉(zhuǎn)換成3維的世界坐標(biāo)系
// // 2.只有3維坐標(biāo)情況下才能來計(jì)算鼠標(biāo)位置與物理的距離,offset即是距離
//將鼠標(biāo)屏幕坐標(biāo)轉(zhuǎn)為三維坐標(biāo),再算出物體位置與鼠標(biāo)之間的距離
Vector3 offset = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z));
while (Input.GetMouseButton(0))
{
//得到現(xiàn)在鼠標(biāo)的2維坐標(biāo)系位置
Vector3 curScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z);
//將當(dāng)前鼠標(biāo)的2維位置轉(zhuǎn)換成3維位置,再加上鼠標(biāo)的移動量
Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset;
//curPosition就是物體應(yīng)該的移動向量賦給transform的position屬性
transform.position = curPosition;
yield return new WaitForFixedUpdate(); //這個(gè)很重要,循環(huán)執(zhí)行
}
}

查看完整回答
反對 回復(fù) 2018-11-16
  • 1 回答
  • 0 關(guān)注
  • 1319 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號