Unity 5网络颜色同步



我试图从我的服务器脚本同步我的立方体的颜色。我有网络变换和网络身份组件,转换同步工作良好,现在我需要同步颜色。我需要像网络材料组件或我应该怎么做?谢谢你:)(我希望你明白我的意思,不好意思英文)

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

[SyncVar]
Color myColor;

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

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

最好的方法是使用钩子:
[SyncVar (hook = "OnColorChanged")]
Color myColor;

这将在每次颜色更新时调用"OnColorChanged"函数

像这样的东西应该可以工作(如果你正在使用SpriteRenders):

[SyncVar (hook = "OnColorChanged")]
Color myColor;
void OnColorChanged(Color value)
{
    myColor = value;
    GetComponent<SpriteRenderer>().color = myColor;
}

最新更新