我在unity中制作纸牌游戏。我在哪里工作的对齐卡应该看起来像一个弧。
所以现在我已经通过放置8个空的gameObjects来实现这一点,因为最大卡号是8,具有特定的旋转和位置。
并使用下面的代码来获得卡片刷出:
int clicks = 0;
public List<GameObject> _playerHandPoints; //playerHandPoints is the 8 empty gameObject created in canvas and passed to this via inspector
GameObject card = Instantiate(cardModel, _playerHandPoints[clicks].transform.position, _playerHandPoints[clicks].transform.rotation);
clicks += 1;
在上述例子中,你可以看到我对空gameobjects实例化卡位置和旋转,更多地去下点点击计数。所以,纸牌从左到右,每次点击图像中纸牌下方的绘制按钮,就会一个接一个地生成点
这里我想让纸牌自己居中对齐。例如,让我说,我点击绘制按钮,我得到一张牌,我想把它放在绘制按钮的正上方。现在假设我再次点击绘制按钮2次。也就是说我有3张牌。我希望它们相应地居中对齐。比如,如果我有5或7张牌,牌的位置应该看起来像一个适当的半圆,就像一个中国扇子,或者像均等地包裹在按钮上。简而言之……从中间的1张牌开始,随着点数的增加,它需要像中国风扇一样正确地居中对齐。我真的想了很多,我要结束了。不知道该做什么该怎么做。我感觉像被困在一个虚空中……任何帮助或提示都会非常感激,谢谢…最后我希望canvas_UI
中所有这些都发生看起来可以用极坐标求解…根据Draw将圆弧划分为段数,然后将它们放置在这些坐标上。
x = radius * cos(theta)
y = radius * sin(theta)
z = constant;
如果弧线开始于45度,结束于135度…那么它就是90度角
假设你抽了两张牌…然后将有3段在弧为您的卡是中心对齐。
所以点将在45 + 1 *(90/3)和45 + 2 *(90/3)角度,
那么就把这个角代入上面的极坐标方程