Unity里实现更换游戏对象材质球

在unity中本来想实现在一个背景墙上更换图片的功能

在网上查了一些资料说是用Image,但我是新手小白刚接触Unity不久好多组建还不会用,就想能不能通过改变游戏对象的材质球来更换游戏对象的背景。

查了一些帖子,参看了前辈们的一些做法,实现了这个功能,现在分享给大家。我是小白一个,技术还不成熟,有些术语表达还不够准确,后来者如果看到这篇帖子,叙述不当之处还请多多包涵,这也是我在CSDN上的第一篇文章

实现过程如下:

1. 在场景中新建一个游戏对象 Creat---->3D object---->Plane

把 Panel 由水平方向调整为竖直方向,使它看起来像一块背景墙。并重新命名为Scren(意思就是作为一个屏幕)。

 

 

 

2. 找两张图片1和2拖到Assets中,另外在Assets下新建一个文件夹命名为Resources。将这两张图片分别拖拽到Scren上可以生成两个材质球。

 

在Resources文件夹中新建一个Materials文件夹,两张图片生成的两个材质球放在Materials文件夹中。

 

3. 新建一个脚本文件 imagePlay.cs,并把这个脚本拖拽到Scren游戏对象上,完成Scren对象绑定脚本的操作。在imagePlay.cs中写入如下代码,就可实现运行时Scren有背景的效果。如果需要更换背景就在update( )函数中写更换背景的条件。

红色为核心代码

1
2
3
4
5
void Start () {undefined
 
this.gameObject.GetComponent<MeshRenderer>().material = Resources.Load<Material>("Materials/1");
 
}

这是我在另外一个文件中设置的一个照片切换的变量flag,读者可以根据自己的需要去写这个Update()函数,核心代码就是那一句获得材质球并显示出来。

1
2
3
4
5
void Update () {undefined
if (CameraSwitch.flag==2)
{this.gameObject.GetComponent<MeshRenderer>().material = Resources.Load<Material>("Materials/2");}
 
}

效果如下:

  

4.为什么要在Assets中新建一个Resoures文件夹,并把材质球导入其中可能是获得材质球的方法要求的吧,Resources.Load<Material>("Materials/2")。方法调用这块我还不太熟悉,以后随着学习深入再来补充吧。此处参考了一个百度贴吧中一个吧友的回复,在此表示感谢。

 

参考贴文地址如下:

http://tieba.baidu.com/p/4873301334

posted @   多见多闻  阅读(1424)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示