/// <summary> /// 創造一個按鈕在場景上 /// </summary> /// <returns>The scene button.</returns> /// <param name="name">Name.</param> /// <param name="parent">Parent.</param> /// <param name="mat">Mat.</param> /// <param name="W">W.</param> /// <param name="H">H.</param> /// <param name="cam">Cam.</param> /// <param name="type">Type.</param> public static GameObject CreateSceneBtn(string name,GameObject parent, Material mat,float W,float H,Camera cam , KZScreenPos.TYPE type = KZScreenPos.TYPE.CENTER) { float _ScaleX = W*10; float _ScaleY = H*10; GameObject btn = new GameObject(); btn.tag = "MBtn"; btn.transform.parent = parent.transform; btn.name =name; btn.AddComponent<BoxCollider>(); btn.GetComponent<BoxCollider>().center =new Vector3(0,0,0); btn.GetComponent<BoxCollider>().size =new Vector3(_ScaleX,_ScaleY,1); btn.AddComponent<KZScreenPos>(); btn.GetComponent<KZScreenPos>().SetScreenPosType(cam,type,_ScaleX/2,_ScaleX/2); GameObject btnAnchor = new GameObject(); btnAnchor.name = "btnAnchor"; btnAnchor.transform.parent = btn.transform; btnAnchor.transform.localPosition =new Vector3((btn.GetComponent<KZScreenPos>().x_offset*_ScaleX*-1)/2,(btn.GetComponent<KZScreenPos>().y_offset*_ScaleY*-1)/2,-1); GameObject btnChild = GameObject.CreatePrimitive (PrimitiveType.Plane); btnChild.name = "btnChild"; btnChild.transform.parent = btnAnchor.transform; btnChild.transform.localScale =new Vector3(W,1,H); btnChild.transform.eulerAngles=new Vector3 (90f,180f, 0f); btnChild.transform.localPosition =new Vector3((btn.GetComponent<KZScreenPos>().x_offset*_ScaleX)/2,(btn.GetComponent<KZScreenPos>().y_offset*_ScaleY)/2,0); btnChild.GetComponent<Renderer>().material = mat; btnChild.GetComponent<Collider>().enabled = false; return btn; }
/// <summary> /// 動態改變TYPE /// </summary> /// <param name="type">Type.</param> public void SetScreenPosType(Camera _cam,KZScreenPos.TYPE type) { _type = type; SetCamera(_cam); SetVector3 (); SetScreenPosition(1,1); }
public void SetScreenPosType(Camera _cam,KZScreenPos.TYPE type,float _offset_x,float _offset_y) { _type = type; SetCamera(_cam); SetOffsetPos(_offset_x,_offset_y); SetVector3 (); SetScreenPosition(x_offset,y_offset); }
/// <summary> /// 創造一個borad /// </summary> /// <returns>The scene broad.</returns> /// <param name="sizeW">Size w.</param> /// <param name="sizeH">Size h.</param> /// <param name="mat">Mat.</param> /// <param name="pos">Position.</param> /// <param name="cam">Cam.</param> /// <param name="type">Type.</param> public static GameObject CreateSceneBroad(float sizeW,float sizeH,Material mat,Vector3 pos, Camera cam,KZScreenPos.TYPE type = KZScreenPos.TYPE.CENTER) { GameObject broad = GameObject.CreatePrimitive (PrimitiveType.Plane); broad.transform.localScale =new Vector3(sizeW,1,sizeH); broad.transform.eulerAngles=new Vector3 (90f,180f, 0f); broad.AddComponent<KZScreenPos>(); broad.GetComponent<KZScreenPos>().SetScreenPosType(cam,type,sizeW/2,sizeH/2); broad.transform.localPosition =pos; broad.GetComponent<Renderer>().material = mat; broad.GetComponent<Collider>().enabled = false; return broad; }