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

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

C# 在 Unity 中將 Vector3 與 Vector2 混淆

C# 在 Unity 中將 Vector3 與 Vector2 混淆

C#
躍然一笑 2023-07-09 09:51:14
當(dāng)嘗試使精靈的樞軸與光標(biāo)的位置相同時(shí) - Vector3 objPos - 并從光標(biāo)位置實(shí)例化對(duì)象減去一些差異 - Vector3 diff - Unity 拋出一個(gè)錯(cuò)誤,指出“運(yùn)算符 '-' 在類(lèi)型的操作數(shù)上不明確” 'Vector2' 和 'Vector3'” 即使這兩個(gè)變量都是 Vector3public Transform baseDot;public KeyCode mouseLeft;public Vector2 mousePosition;Vector2 mousePos;Vector2 objPos;void OnMouseOver(){    Vector3 diff = new Vector3(2f, 2.8f, 0f);    float xPos = Camera.main.ScreenToWorldPoint(mousePos).x;    float yPos = Camera.main.ScreenToWorldPoint(mousePos).y;    mousePos = new Vector2(Input.mousePosition.x, Input.mousePosition.y);    objPos = new Vector3(xPos, yPos, -10);    if (Input.GetKey(mouseLeft) )        Instantiate(baseDot, objPos-diff, baseDot.rotation);}
查看完整描述

3 回答

?
絕地?zé)o雙

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

即使這兩個(gè)變量都是 Vector3 的

自從你定義以來(lái)這并不完全正確

Vector2?objPos;

您分配給它的值Vector3會(huì)隱式轉(zhuǎn)換為Vector2值。

如果您閱讀相應(yīng)的 API,就會(huì)清楚了Vector2.Vector3

將 a 轉(zhuǎn)換Vector2為 a?Vector3。

AVector2可以隱式轉(zhuǎn)換為 a?Vector3。(z結(jié)果中 被設(shè)置為零)。

Vector2.Vector2

將 a 轉(zhuǎn)換Vector3為 a?Vector2。

AVector3可以隱式轉(zhuǎn)換為 a?Vector2。(z 被丟棄)。

其中隱式意味著您不必顯式使用類(lèi)型轉(zhuǎn)換,但可以互換使用兩種類(lèi)型。

因此,在您收到的錯(cuò)誤中,ambiguous意味著 c# 不知道您要使用哪個(gè)操作。

要么存在,Vector2 - Vector2要么Vector3 - Vector3存在,由于隱式轉(zhuǎn)換,兩者都是可能的。因此,c# 不知道要更改兩個(gè)值中的哪一個(gè)類(lèi)型。


最明顯的解決方案是將類(lèi)型更改為

Vector3?objPos;


查看完整回答
反對(duì) 回復(fù) 2023-07-09
?
守著一只汪

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

C# 在這里表現(xiàn)正確。Vector2 和 Vector3 是結(jié)構(gòu)體(值類(lèi)型),并且只能將 Vector3 分配給 Vector2,因?yàn)?Vector2 定義了隱式運(yùn)算符。這意味著當(dāng)您將 Vector3 分配給 Vector2 類(lèi)型的變量時(shí),它會(huì)變成 Vector2 并且 z 坐標(biāo)會(huì)丟失。

要解決您的問(wèn)題,只需將 objPos 的類(lèi)型更改為 Vector3 或創(chuàng)建一個(gè)新的臨時(shí)變量來(lái)存儲(chǔ)新的 Vector3(xPos, yPos, -10);

為了理解這種行為,我建議研究引用類(lèi)型與值類(lèi)型以及隱式運(yùn)算符。


查看完整回答
反對(duì) 回復(fù) 2023-07-09
?
慕姐8265434

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

也許嘗試將變量 objPos 定義為Vector3,我不確定它是否在類(lèi)型之間定義了隱式/顯式轉(zhuǎn)換運(yùn)算符:

Vector2 objPos;
...
objPos = new Vector3(xPos, yPos, -10);


查看完整回答
反對(duì) 回復(fù) 2023-07-09
  • 3 回答
  • 0 關(guān)注
  • 577 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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