Unity怎么用代码改变gameobject的tag和贴图?
我试用了以下代码,貌似不行if(col.gameObject.tag=="UnitCube1"){col.gameObject.tag="UnitCube";col.ga...
我试用了以下代码,貌似不行
if (col.gameObject.tag == "UnitCube1") {
col.gameObject.tag = "UnitCube";
col.gameObject.renderer.material.mainTexture = textures;
} 展开
if (col.gameObject.tag == "UnitCube1") {
col.gameObject.tag = "UnitCube";
col.gameObject.renderer.material.mainTexture = textures;
} 展开
展开全部
不知道你的col是什么类型,如果是GameObject类型的,试试这样写
if (col.tag == "UnitCube1")
{
col.tag = "UnitCube";
col.renderer.material.mainTexture = textures;
}
用Debug.Log或者print,看一下你if里面的代码是否执行了。如果没执行就要找一下错误了。
【Unity3D中gameObject和GameObject的区别】
这两个相比,gameObject好理解一点,就是你脚本挂着的那个物体。这个实例化过程是Unity帮你实现的,不用在写代码实例化。this.gameObject默认函数,脚本一创建直接就get到了。
例如,有一个A物体。你给它挂载一个脚本里写this.gameObject。那就等于是直接获取(实例化)A这个物体了,你直接可以引用它下面挂载的属性。
GameObject不是对象,通常需要获取一个对象,就像你定义一个public GameObject A;
那么属性里就会出现一个可托选的框,那就是Unity告诉你,你定义的这个物体是哪个物体要你选择,无论你拖拽也好,脚本里获取也好,都是要给A赋予对象的。
展开全部
不知道你的col是什么类型,如果是GameObject类型的,试试这样写
if (col.tag == "UnitCube1") {
col.tag = "UnitCube";
col.renderer.material.mainTexture = textures;
}
还有你这这里面打印一下,用Debug.Log或者print,看一下你if里面的代码是否执行了。如果没执行就要找一下错误了。有问题再追问
if (col.tag == "UnitCube1") {
col.tag = "UnitCube";
col.renderer.material.mainTexture = textures;
}
还有你这这里面打印一下,用Debug.Log或者print,看一下你if里面的代码是否执行了。如果没执行就要找一下错误了。有问题再追问
更多追问追答
追问
col是Collider2D类型,现在那个tag的改变执行了,但是第二句的贴图没有换,是因为对图片有要求吗?
追答
截图看看你要换图片物体的属性(inspector)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询