/// <summary> /// 动态添加游戏对象脚本 /// 作用 :当游戏对象更换什么的,更加方便 /// </summary> private void AddGameObjectScripts() { // 方法1:通过Tag // 给小鸟挂载控制脚本 Ctrl_BirdControl tmp = GameObject.FindGameObjectWithTag(ProjectConst.BIRD_TAG) .GetComponent <Ctrl_BirdControl>(); if (tmp == null) { GameObject.FindGameObjectWithTag(ProjectConst.BIRD_TAG) .AddComponent <Ctrl_BirdControl>(); } // 方法2:通过名字 以及 封装的方法 GameObject root = GameObject.Find(ProjectConst.ROOT); // 给陆地挂载移动脚本 UnityHelper.AddTheChildNodeComopnetScripts <Ctrl_LandMoving>(root, ProjectConst.LAND); // 给管道挂载移动脚本 UnityHelper.AddTheChildNodeComopnetScripts <Ctrl_PipesMove>(root, ProjectConst.PIPES); for (int i = 1; i < 4; i++) { // 给管道挂载碰撞脚本 UnityHelper.AddTheChildNodeComopnetScripts <Ctrl_PipeAndLand>(root, ProjectConst.PIPE_DOWN + i); UnityHelper.AddTheChildNodeComopnetScripts <Ctrl_PipeAndLand>(root, ProjectConst.PIPE_UP + i); // 给地面挂载碰撞脚本 UnityHelper.AddTheChildNodeComopnetScripts <Ctrl_PipeAndLand>(root, ProjectConst.LANDING + i); // 给管道(金币)挂载触发脚本 UnityHelper.AddTheChildNodeComopnetScripts <Ctrl_Golds>(root, ProjectConst.PIPE_TRIGGER + i); } // 给root 挂载 计时脚本 root.AddComponent <Ctrl_GetTIme>(); }
void Awake() { _instance = this; _userList = UnityHelper.AddTheChildNodeComopnetScripts <UserList>(gameObject, Proconst.EMP_LISTINFO); _userForm = UnityHelper.AddTheChildNodeComopnetScripts <UserForm>(gameObject, Proconst.EMP_FORMINFO); }