Unity 5网络颜色同步

时间:2016-09-11 00:16:04

标签: c# networking unity3d

我正在尝试从我的服务器脚本中同步我的多维数据集的颜色。我有网络转换和网络身份组件,转换同步工作很好,现在我需要同步颜色。我需要像Network Material组件这样的东西或者我应该怎么做呢?谢谢:)(我希望你明白我的意思,抱歉英语。)

1 个答案:

答案 0 :(得分:0)

您可以使用SyncVar属性同步值:

[SyncVar]
Color myColor;

这将使更改在客户端和服务器上保持同步。但这只是您的颜色类型中的一个字段,它实际上并不会改变渲染的颜色。

您可以在更新回调中将渲染的颜色更改为myColor值,但即使颜色没有变化,它也会更新。

最好的方法是使用钩子:

[SyncVar (hook = "OnColorChanged")]
Color myColor;

每次更新颜色时都会调用“OnColorChanged”函数。

这样的事情应该有用(如果你正在使用SpriteRenders):

[SyncVar (hook = "OnColorChanged")]
Color myColor;

void OnColorChanged(Color value)
{
    myColor = value;
    GetComponent<SpriteRenderer>().color = myColor;
}