unity+实例化

 

代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using System.IO;

public class Test : MonoBehaviour {
    public RectTransform PDFViewerRef;
    public static Test TestRef;
    public string Str;
    public string PDFName;

    private void Awake()
    {
        TestRef = this;
    }
    // Use this for initialization
    void Start ()
    {
        Str = "/sdcard/TKData/SaveData/";
        if (!Directory.Exists(Str))
        {
            Directory.CreateDirectory(Str);
        }
        PDFName = "04.硬件手册.pdf";
    }
    public void OnCreateObjButton()
    {
        StartCoroutine(OnCreateProjectContent("PDFViewer", PDFViewerRef));//2019.5.9新版本一个项目在一个json

    }
    IEnumerator OnCreateProjectContent(string ObjName, RectTransform pathButtonPool)
    {
        yield return new WaitForSeconds(0.5f);

       
      
            //Debug.LogError("s" + FactoryNum);
            //pathButtonPool.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 60, PuAnGetBrowserPathData.PuAnGetBrowserPathDataInstance.BrowserDataResules.Count * 65);//动态设置面板的长度2019.1.3
           
                //生成按钮对象,给位置,给名字,给点击事件
              var  CreateProjectObj = OnCreateButton(ObjName, pathButtonPool);

                CreateProjectObj.transform.localPosition = new Vector3(0,0, 0);
              
    }

    public GameObject OnCreateButton(string InstantiateName, RectTransform InstantiateParent)
    {
        GameObject InstantiatePath = Resources.Load<GameObject>(InstantiateName);
        GameObject ObjectTemp = Instantiate(InstantiatePath, InstantiateParent);
        //ObjectTemp.name = InstantiateName;
        return ObjectTemp;

    }
    // Update is called once per frame
    void Update () {
		
	}
}

  TK里面的ScrollVie子物体实例化

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TKProjectManager : TKManager
{

    //public Button UserButton;
    public int ProjectNum;
    private GameObject CreateProjectObj;

    private Button btn_CreateProjectItem;
    public TKFactoryManager TKFactoryManagerRef;
    public List<GameObject> ProjectItemList;
    Texture2D tempImage;
    private void Awake()
    {
        TKGlobalData.Btn_CuetomName = "Btn_Project";
        OnBindEvent();
    }
    private void OnEnable()
    {
        UserButton.GetComponent<Image>().color = Color.white;
        isReClick = true;
    }
    private void Start()
    {
        //Debug.LogError("Project只执行一次,加载数据写在其他地方");
        //OnCreateScrollViewContent(TKGlobalData.Btn_CuetomName, pathButtonPool);
        //StartCoroutine(OnCreateProjectContent("Btn_Project", pathButtonPool));//旧版本所有项目在一个json
        //OnBindEvent();
    }
    public void OnCreateProjectItem()
    {
        StartCoroutine(OnCreateProjectContent("Btn_Project", pathButtonPool));//2019.5.9新版本一个项目在一个json
       //2019.10.22校验                                                                  //2017.10.22校验
        TKDataHandle.TKDataHandleInstance.GetCheckUserInformation();
    }
    public override void OnClonButtonClick(string path)
    {
        Debug.LogError("项目");        
    }
    IEnumerator LoadImage(string path,RawImage image)
    {
       
        string filePath="file://"+TKGlobalData.CurrentLoadDataPath + "document/" + path;

        WWW www = new WWW(filePath);
        yield return www;
        if (www.error != null)
        {
            //Debug.LogError(filePath + www.error);
          
            image.gameObject.SetActive(false);
        }
        else
        {
            //Debug.LogError(filePath);
            image.gameObject.SetActive(true);
            tempImage = www.texture;
            image.texture = tempImage;
        }

    }
    IEnumerator OnCreateProjectContent(string ObjName, RectTransform pathButtonPool)
    {
        yield return new WaitForSeconds(0.5f);
      
        ProjectNum = TKDataHandle.TKDataHandleInstance.CurrentProjects.Length;
        if (ProjectNum != 0)
        {
            //Debug.LogError("s" + FactoryNum);
            //pathButtonPool.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 60, PuAnGetBrowserPathData.PuAnGetBrowserPathDataInstance.BrowserDataResules.Count * 65);//动态设置面板的长度2019.1.3
            pathButtonPool.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0, ProjectNum * 200);//动态设置面板的长度2019.1.3
            for (int i = 0; i < ProjectNum; i++)//2019.1.3
            {                
                string txtName = TKDataHandle.TKDataHandleInstance.CurrentProjects[i].projectName;
                int currentVisitTitleIDSSS = i;
                //生成按钮对象,给位置,给名字,给点击事件
                CreateProjectObj = OnCreateButton(ObjName, pathButtonPool);

                CreateProjectObj.transform.localPosition = new Vector3(-20, (pathButtonPool.transform.localPosition.y + 50) - 100f * (i + 1), 0);
                btn_CreateProjectItem = CreateProjectObj.transform.GetChild(0).GetComponent<Button>();
                CreateProjectObj.transform.GetChild(1).transform.GetChild(0).GetComponent<Text>().text = txtName;
                //Debug.LogError("i***" + currentVisitTitleIDSSS+btn_CreateProjectItem.name);
                btn_CreateProjectItem.onClick.AddListener(delegate () { this.CurrentProjectSelectClick(currentVisitTitleIDSSS); });
                //Btn_CurrentVisitTitleList.Add(btn_CreateProjectItem);
                ProjectItemList.Add(CreateProjectObj);
                var btn_Image = CreateProjectObj.transform.GetChild(2).GetComponent<Button>();
                btn_Image.onClick.AddListener(delegate () { this.CurrentProjectSelectClick(currentVisitTitleIDSSS); });
                StartCoroutine(LoadImage(TKDataHandle.TKDataHandleInstance.CurrentProjects[i].projectImg, CreateProjectObj.transform.GetChild(2).GetComponent<RawImage>()));
            }
        }
    }
    //public void CreateBtn_ImageClick(int projectID)
    //{
        
    //}
    public void CreateProjectItem( string ObjName, RectTransform pathButtonPool)
    {
		ProjectNum = TKDataHandle.TKDataHandleInstance.CurrentProjects.Length;
        if (ProjectNum != 0)
        {
            //Debug.LogError("s" + FactoryNum);
            //pathButtonPool.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 60, PuAnGetBrowserPathData.PuAnGetBrowserPathDataInstance.BrowserDataResules.Count * 65);//动态设置面板的长度2019.1.3
            pathButtonPool.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0, ProjectNum * 200);//动态设置面板的长度2019.1.3
            for (int i = 0; i < ProjectNum; i++)//2019.1.3
            {
                string txtName = TKDataHandle.TKDataHandleInstance.CurrentProjects[i].projectName;
                int currentVisitTitleIDSSS = i;
                //生成按钮对象,给位置,给名字,给点击事件
                CreateProjectObj = OnCreateButton(ObjName, pathButtonPool);
                CreateProjectObj.transform.localPosition = new Vector3(-20, (pathButtonPool.transform.localPosition.y + 50) - 100f * (i + 1), 0);
                btn_CreateProjectItem = CreateProjectObj.transform.GetChild(0).GetComponent<Button>();
                CreateProjectObj.transform.GetChild(1).transform.GetChild(0).GetComponent<Text>().text = txtName;
                //Debug.LogError("i***" + currentVisitTitleIDSSS+btn_CreateProjectItem.name);
                btn_CreateProjectItem.onClick.AddListener(delegate () { this.CurrentProjectSelectClick(currentVisitTitleIDSSS); });
                //Btn_CurrentVisitTitleList.Add(btn_CreateProjectItem);
            }
        }
    }
    private void CurrentProjectSelectClick(int projectID)
    {
        //Debug.LogError("hah" + projectID);
        TKGlobalData.CurrentSelectProjectID = projectID;
        if (projectID < TKDataHandle.TKDataHandleInstance.CurrentProjects.Length)
        {
            TKDataHandle.TKDataHandleInstance.CurrentProject = TKLoadJson.TKLoadJsonInstance.LoadTKProjectJsonDataFromFile(TKDataHandle.TKDataHandleInstance.CurrentProjects[projectID].projectName + ".json");
            TKUIStateSelect.TKUIStateSelectInstance.OnSetCurrentUiPanelsState(TKPanelType.FactoryPanel);
            // TKFactoryManagerRef.OnCreateFactoryCall(TKDataHandle.TKDataHandleInstance.GetCurrentWorkShop(projectID),TKDataHandle.TKDataHandleInstance.CurrentProjects[projectID].projectName);//旧版本,2019.5.6
            TKFactoryManagerRef.OnCreateFactoryCall(TKDataHandle.TKDataHandleInstance.GetProjectCurrentWorkShop(), TKDataHandle.TKDataHandleInstance.CurrentProjects[projectID].projectName);//新版本,一个项目一个.JSON
        }
    }
	public override void OnInit()
    {
        //OnBindEvent();

    }
    public override void OnBindEvent()
    {
        base.OnBindEvent();
        EventTriggerListener.Get(UserButton.gameObject).onClick += OnUserButtonClick;
       
    }
    //private void OnUserButtonClick(GameObject go)
    //{
    //    if (go == UserButton.gameObject)
    //    {
    //        OnUserButton();
    //    }
    //}
    //bool isReClick = true;
    //private void OnUserButton()
    //{
    //    Debug.Log("UserButton......");
    //    if (isReClick)
    //    {
    //        isReClick = !isReClick;
    //        UserButton.GetComponent<Image>().color = Color.black;
    //        TKUIStateSelect.TKUIStateSelectInstance.CurrentUIPanels[(int)TKPanelType.UserInformationPanel].gameObject.SetActive(true);
    //    }
    //    else
    //    {
    //        isReClick = !isReClick;
    //        UserButton.GetComponent<Image>().color = Color.white;
    //        //TKUIStateSelect.TKUIStateSelectInstance.OnSetCurrentUiPanelsState(TKPanelType.ProjectPanel);
    //        TKUIStateSelect.TKUIStateSelectInstance.CurrentUIPanels[(int)TKPanelType.UserInformationPanel].gameObject.SetActive(false);
    //    }

    //}


}

  

posted @ 2019-10-29 10:17  WalkingSnail  阅读(846)  评论(0)    收藏  举报