- Код: Выделить всё
using UnityEngine;
public class CreateGUIObj : MonoBehaviour
{
public GameObject obj;
void GUIObjectCreater(GUIObjParams paramz)
{
obj = new GameObject();
obj.name = paramz.name;
obj.AddComponent("GUIQuadObj");
if (paramz.components != null)
{
foreach (string component in paramz.components) obj.AddComponent(component);
}
GUIQuadObj quad = (GUIQuadObj)obj.GetComponent(typeof(GUIQuadObj));
GUIQuadMgr manager = (GUIQuadMgr)GetComponent(typeof(GUIQuadMgr));
obj.transform.parent = transform;
quad.mColor = paramz.color;
quad.mWidth = paramz.width;
quad.mHeight = paramz.height;
quad.mLocation = paramz.location;
quad.mRotation = paramz.rotation;
quad.mScale= paramz.scale;
quad.mUV = paramz.uv;
quad.mDepth = paramz.depth;
quad.mCollider = paramz.collider;
quad.mColliderSize = paramz.colliderSize;
quad.mVisible = paramz.visible;
quad.mEnabled = paramz.enable;
quad.mFlipped= paramz.flipped;
quad.InitQuad(manager);
}
}
public class GUIObjParams
{
public string name;
public string[] components;
public Color color;
public int width;
public int height;
public Vector2 location;
public float rotation;
public Vector2 scale;
public Vector2 uv;
public float depth;
public ColliderType collider;
public Vector2 colliderSize;
public bool visible;
public bool enable;
public bool flipped;
public GUIObjParams()
{
name = "gmObject";
color = Color.white;
collider = ColliderType.None;
scale = new Vector2(1, 1);
visible = true;
}
}
для работы нужно вынести описание public enum ColliderType за пределы описания класса GUIQuadObj:
- Код: Выделить всё
using UnityEngine;
using System.Collections;
public enum ColliderType
{
Square = 0,
Circle = 1,
None = 2
};
public class GUIQuadObj : MonoBehaviour {
/*-----------------------------------Public Variables------------------------------------*/
public Color mColor = Color.white;
добавляем скрипт к объекту содержащий GUIQuadMgr и мучаем