簡體   English   中英

CS1503:參數 3:無法從“double”轉換為“UnityEngine.Quaternion”幫助! 統一二維 c#

[英]CS1503: Argument 3: cannot convert from 'double' to 'UnityEngine.Quaternion' HELP! unity 2D c#

        //pew pew
        Vector3 mousePosition = Input.mousePosition;
        mousePosition = Camera.main.ScreenToWorldPoint(mousePosition);

        Vector2 direction = new Vector2(mousePosition.x - transform.position.x, mousePosition.y - transform.position.y);
        var rad = Math.Atan2(direction.y, direction.x);
        var deg = rad * (180 / Math.PI);
        Debug.Log(deg);
        Instantiate(bulletprefab, firePoint.position, deg);

嗨,基本上,我試圖向鼠標的方向發射子彈。 但找不到任何我能理解的答案。 我是初學者。

您正在將單個floatdeg傳遞給Instantiate(Transform, Vector3, Quaternion)

Instantiate(bulletprefab, firePoint.position, deg);

它期望旋轉Quaternion作為這里的第三個參數!

由於這應該是 2D 的,這意味着您正在搜索全局Z軸上大約deg度的旋轉。 現在有多種方法可以得到它。 你可以例如使用Quaternion.Euler

Instantiate(bulletprefab, firePoint.position, Quaternion.Euler(Vector3.forward * deg));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM