查看: 19612|回复: 125

[在unity中制作] 通过脚本修改源资产

  [复制链接]

2

主题

3

帖子

58

积分

vip会员

Rank: 1

积分
58
发表于 2016-7-15 00:58:21 | 显示全部楼层 |阅读模式
自动实例化

通常当你想修改任何游戏资产,你希望它发生在运行时,你希望它是暂时的。例如,如果你的性格,拿起一个无敌的电,你可能想改变着色器的材料为玩家直观地展示了无敌状态。这一行动涉及修改正在使用的材质。这样的修改是不是永久性的因为我们不想要的物质有不同的着色器,我们出去的时候播放模式。

然而,写脚本,将永久地修改源资产统一是可能的。让我们用上述材料的例子为出发点。

要暂时改变材质的着色器,我们改变着色器财产的材料组件

private var invincibleShader = Shader.Find ("Specular");

function StartInvincibility {
    renderer.material.shader = invincibleShader;
}
当使用这个脚本,退出播放模式的国家,材料将被重置为无论是最初进入播放模式之前。这是因为每当renderer.material访问、材料自动实例化并返回实例。这个实例是同时并自动应用到渲染器。所以你可以让你的心的欲望没有恐惧的持久性的任何变化。

直接修改

重要注意事项

下面介绍的方法修改实际的源文件内使用统一的资产。这些修改是不可撤销的。小心使用。

现在让我们说,我们不想重置材质当我们退出播放模式。为此,您可以使用renderer.sharedmaterial。的sharedmaterial属性将返回这个渲染器使用的实际资产(或者其他)。

下面的代码将永久改变材料使用镜面材质。它不会重置材质前的状态模式。

private var invincibleShader = Shader.Find ("Specular");

function StartInvincibility {
    renderer.sharedMaterial.shader = invincibleShader;
}
正如你可以看到,一个sharedmaterial做出任何改变,可能是有用的和危险的。一个sharedMaterial所做的任何更改将是永久性的,不可撤销的。

适用于类成员

上述公式可以应用到的不仅仅是材料。资产按照本公约的完整列表如下:

材料:renderer.material和renderer.sharedmaterial
目:meshfilter.mesh和meshfilter.sharedmesh
物理材料:collider.material和collider.sharedmaterial
直接分配

如果你声明一个公共变量:任何级以上材料,网格,或物理材料,并使用该变量而不是使用相关的类成员的资产进行修改,你将不会修改之前应用接收自动实例化的好处。

不自动实例化的资产

有两种不同的资产,不会自动实例化时修改它们。

Texture2D
地形数据
任何修改过的这些资产通过脚本都是永久的,不可撤销的。所以如果你通过脚本改变地形的高度图,你需要考虑实例化,并在你自己的赋值。同样的纹理。如果你改变一个纹理文件的像素,变化是永恒的。

iOS和Android的笔记

Texture2D资产不会自动实例化时修改他们在iOS和Android项目。任何修改过的这些资产通过脚本都是永久的,不可撤销的。所以,如果你改变一个纹理文件的像素,变化是永恒的。

回复

使用道具 举报

0

主题

898

帖子

2951

积分

vip会员

Rank: 1

积分
2951
发表于 2016-7-15 00:58:22 | 显示全部楼层
什么鬼???看着很不错的样子啊!
回复 支持 反对

使用道具 举报

0

主题

880

帖子

2958

积分

vip会员

Rank: 1

积分
2958
发表于 2016-7-15 01:33:39 来自手机 | 显示全部楼层
谢谢 分享 这个我还记得 不错
回复 支持 反对

使用道具 举报

0

主题

913

帖子

3047

积分

vip会员

Rank: 1

积分
3047
发表于 2016-7-15 01:47:30 来自手机 | 显示全部楼层
学习了,感谢分享
回复 支持 反对

使用道具 举报

0

主题

818

帖子

2670

积分

vip会员

Rank: 1

积分
2670
发表于 2016-7-15 02:27:05 来自手机 | 显示全部楼层
看一下,谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

1289

帖子

4023

积分

vip会员

Rank: 1

积分
4023
发表于 2016-7-15 02:58:43 来自手机 | 显示全部楼层
我又来了,太贵了,我盯着你好久了。
回复 支持 反对

使用道具 举报

0

主题

889

帖子

2959

积分

vip会员

Rank: 1

积分
2959
发表于 2016-7-15 03:50:28 | 显示全部楼层
这个必须顶,撸主好人
回复 支持 反对

使用道具 举报

0

主题

883

帖子

2915

积分

vip会员

Rank: 1

积分
2915
发表于 2016-7-15 04:17:02 | 显示全部楼层
这个不错这个不错这个不错
回复 支持 反对

使用道具 举报

0

主题

896

帖子

2966

积分

vip会员

Rank: 1

积分
2966
发表于 2016-7-15 04:36:01 | 显示全部楼层
最喜欢全套的了
回复 支持 反对

使用道具 举报

0

主题

860

帖子

2831

积分

vip会员

Rank: 1

积分
2831
发表于 2016-7-15 05:17:49 来自手机 | 显示全部楼层
看看价钱,然后考虑。
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部