我上面有带有数字的图片(我是说精灵)。 我将它们放在一个空的GameObject上,我的意思是[SerializeField],并通过脚本(C#Ofcourse)添加了,所以这些对象并不是真正存在于游戏开始时正在生成的对象。 因此,如您在代码中所见,我可以设置行和列的数量,并且在偏移量的情况下还可以在X和Y轴上设置距离。但我无法重新定位。似乎第一个生成的对象被锁定在项目的中间(第一个向上左),因此我尝试移动空游戏对象的Gizmo,但即使使用了Inspector,精灵仍然在原地。似乎需要将其放置在脚本中,但是如何?
请给我足够的例子女巫将与Unity合作?
我试图将其放置在Unity中,就像我在移动Gameobject的Gizmo以及在Inspector中提到的那样。确实似乎只能在脚本上完成(我可能错了,但我尝试了所有方法)
public class Controll : MonoBehaviour
{
public const int gridRows = 6;
public const int gridCols = 6;
public const float offsetX = 0.65f;
public const float offsetY = 0.97f;
[SerializeField] private GameObject[] cardBack;
// Use this for initialization
void Start ()
{
for (int i = 0; i < gridRows; i++)
{
for (int j = 0; j < gridCols; j++)
{
Instantiate(cardBack[i], new Vector3(offsetY*j, offsetX* i *-1 , -0.1f), Quaternion.identity);
}
}
}
答案 0 :(得分:0)
您要将所有对象实例化到场景根级别。它们与最初负责实例化的GameObject没有任何关系。
如果您希望它们相对于生成的GameObject定位,则使用
var position = transform.position + new Vector3(offsetY * j, offsetX * i * -1, -0.1f);
Instantiate(cardBack[i], position, Quaternion.Identity, transform);
为了将它们实例化为此Controll
脚本的GameObject的子对象。
现在,如果您平移,旋转或缩放该父对象,则所有实例化的对象都会随之转换。