簡體   English   中英

Unity夾緊問題

[英]Unity clamping issues

我試圖只允許我的乒乓球游戲中的乒乓球拍轉到屏幕頂部和底部,然后停止。 我以為可以將yClamp變量設置為相機大小-紋理的高度除以2。但是,這根本不起作用。 以我正在使用的長寬比,頂部應該大約在3.2到3之間。這是我嘗試使用的代碼:

    renderer = GetComponent<SpriteRenderer>();

    yClamp = Mathf.Abs(Camera.main.orthographicSize - 
        ((renderer.sprite.textureRect.height / renderer.sprite.pixelsPerUnit)/2f));

但是,這只允許我轉到1.43和-1.43。 我似乎無法弄清楚為什么這行不通。 所有邏輯都在那里。 槳開始於(0,0),所以我看不出我的邏輯錯在哪里。

非常感謝您的任何幫助!

注意:只是為了清理起見,鉗位應該大致介於-3.2和3.2之間。但是,我需要一個公式,因為我將處理許多分辨率。 這是我的調試狀態。

我不明白為什么它不起作用。

這是我要檢查的

  • 您假設將其放置在y = 0坐標中。 這是正確的嗎 ?
  • Camera orthoSize是視圖大小的一半(但我認為您使用正確)
  • renderer.sprite.textureRect.height給出正確的像素結果?
  • 如果改用Sprite.bounds怎么辦?

您只有幾個變量,因此不難確定哪個變量不包含期望值。 如果這樣做不起作用,您能否發布每個變量的值(高度,相機大小,單位像素)

暫無
暫無

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

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