【bug】对象激活前无法通过调用脚本函数设置变量
2016-04-28 15:46
555 查看
【原应用背景】
在一个控制脚本里通过
紧接着发现,setName(name)并不能成功修改对象的变量。
【原因】
在SetActive之前,脚本被禁用了。
但是很奇怪,即便在禁用的情况下调用Debug.log()仍然能看到输出:为了检查为什么出错,我在函数中加了log信息。
结果就是在面板中能看到输出“test”,但是m_name的值无法被修改。
【解决】
先SetActive再调用setName方法修改变量。
在一个控制脚本里通过
GameObject objectSpawned = GameObject.Instantiate(objectPrefab, position, Quaternion.identity) as GameObject; objectSpawned.GetComponent<BaseObject>().setName(name); objectSpawned.SetActive(true);
紧接着发现,setName(name)并不能成功修改对象的变量。
【原因】
在SetActive之前,脚本被禁用了。
但是很奇怪,即便在禁用的情况下调用Debug.log()仍然能看到输出:为了检查为什么出错,我在函数中加了log信息。
public void setName(string name){ m_name = name; Debug.log("test"); }
结果就是在面板中能看到输出“test”,但是m_name的值无法被修改。
【解决】
先SetActive再调用setName方法修改变量。
相关文章推荐
- Kinect结合Unity3D引擎开发体感游戏(一)
- Unity3D中脚本的执行顺序和编译顺序
- Unity3D动态对象优化代码分享
- Unity3D获取当前键盘按键及Unity3D鼠标、键盘的基本操作
- Unity3d获取系统时间
- unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android apk)
- Unity3D游戏引擎实现在Android中打开WebView的实例
- unity3d调用手机或电脑摄像头
- Unity3d发布IOS9应用时出现中文乱码的解决方法
- 分享一个开源的网络游戏服务器架构—HouHai
- Unity3D插件详细评测及教学下载
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏
- Unity3D上路_04-基础资源介绍
- Unity3D上路_05-网络相关