Когда я создаю сборку как GameObject, проблем нет. Но при создании экземпляра prefab как RawImage существует проблема NullReferenceException. (Каркасный является RawImage, если вам нужно знать)Unity3D RawImage (UI) Instantiate
Это мой код:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Insstantia : MonoBehaviour
{
public GameObject img;
public void Instan()
{
RawImage[] myObject = new RawImage[8];
RectTransform[] rt = new RectTransform[8];
for (int i = 0; i < 8; i++)
{
myObject[i] = Instantiate(img, new Vector3(800 * i, 0, 0), Quaternion.identity) as RawImage;
rt[i] = myObject[i].GetComponent<RectTransform>();
myObject[i].transform.SetParent(gameObject.transform, false);
rt[i].anchorMin = new Vector2(0.05875f, 0);
rt[i].anchorMax = new Vector2(0.94375f, 1);
}
}
}
Сомневаюсь, что исправить проблему, экземпляр создает GameObject. RawImage - это компонент, прикрепленный к игровому объекту. Другой способ работы будет работать, когда вы измените myObject [] в GameObject, а не на RawImage. –
Просто протестировал его, и, похоже, он работает, это, конечно же, путем изменения публичного поля на публичный RawImage img, а затем наложения на RawImage, что пытался сделать OP :) –
Ему нужно будет изменить еще несколько призов, так как RectTransform не привязан к RawImage, но скорее скорее к экземпляру объекта –