去掉public改写成错误的字段内容 紧接着再在public时改写回正确的字段产生的问题

本文探讨了在Unity3D中,当public字段`ResourceDir`的值改变导致`Resources.Load`返回null的问题。错误流程包括将`ResourceDir`设置为错误路径并运行,然后尝试改正。关键发现是,只有在特定条件下才能修正错误,即重新设置回正确的`ResourceDir`值。在修正后,`ResourceDir`可以随意更改而不会报错。问题源于`GameObject prefab = Resources.Load(path);`的`prefab`变量始终为null,尽管`path`正确。
摘要由CSDN通过智能技术生成

摘要

1.Untiy3D
2.GameObject prefab=Resources.Load (path);
3 path值通过字符串public string ResourceDir = “XXXX”;或string ResourceDir = “XXXX” +name(传递进来的string参数)赋值。路径正确但prefab=null
4只找到了解决办法,没有解决原理,怀疑跟存储方式有关。

出错流程和解决流程

在这里插入图片描述
代码简化版

public string ResourceDir = “XXXX”;
void RegisterNew(string name)
{
string path = “”;
path = ResourceDir + “/” + name;
GameObject prefab = Resources.Load (path);
}

1想出错
只有在在去掉public的string ResourceDir时改成错误的路径,比如string ResourceDir=”Prefab”去掉s,运行一遍,报错。调试prefab=null
2要想改正
必须在去掉public时改回string ResourceDir=”Prefabs”才行,采取别的办法比如public string ResourceDir=”Prefabs”也不行,此时path正确,但prefab&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值