Синтаксис:
Используется csharp
public GameObject go_Bar;
//
public void HidePanel()
{
this.GetComponent<NetworkView>().RPC("RPC_HidePanel", RPCMode.All, ShowPanel); // 40 строчка
}
[RPC]
void RPC_HidePanel(bool b)
{
ShowPanel = b;
ShowPanel = !ShowPanel;
Panel.active = ShowPanel;
if (ShowPanel)
{
//ButHideText.GetComponent<Text>().text = "Скрыть меню";
img_Hide.GetComponent<Image>().sprite = spr_svernut;
go_Bar.GetComponent<Animation>().Play("Hide_menu_up");
}
else
{
//ButHideText.GetComponent<Text>().text = "Показать меню";
img_Hide.GetComponent<Image>().sprite = spr_razvern;
go_Bar.GetComponent<Animation>().Play("Show_menu_up"); // 60 строчка
//an_bar.Play("Show_menu_up");
}
}
//
public void HidePanel()
{
this.GetComponent<NetworkView>().RPC("RPC_HidePanel", RPCMode.All, ShowPanel); // 40 строчка
}
[RPC]
void RPC_HidePanel(bool b)
{
ShowPanel = b;
ShowPanel = !ShowPanel;
Panel.active = ShowPanel;
if (ShowPanel)
{
//ButHideText.GetComponent<Text>().text = "Скрыть меню";
img_Hide.GetComponent<Image>().sprite = spr_svernut;
go_Bar.GetComponent<Animation>().Play("Hide_menu_up");
}
else
{
//ButHideText.GetComponent<Text>().text = "Показать меню";
img_Hide.GetComponent<Image>().sprite = spr_razvern;
go_Bar.GetComponent<Animation>().Play("Show_menu_up"); // 60 строчка
//an_bar.Play("Show_menu_up");
}
}
Ошибка
The animation state Show_menu_up could not be played because it couldn't be found!
Please attach an animation clip with the name 'Show_menu_up' or call this function only for existing animations.
UnityEngine.Animation:Play(String)
GlobalVar:RPC_HidePanel(Boolean) (at Assets/Script/GlobalVar.cs:60)
UnityEngine.NetworkView:RPC(String, RPCMode, Object[])
GlobalVar:HidePanel() (at Assets/Script/GlobalVar.cs:40)
UnityEngine.EventSystems.EventSystem:Update()
Если закаментить 60 строчку то все работает, то есть эта ошибка из за анимации. Анимацию делал по старому как в старых версиях юнити. Через аниматор не понял как работать, точнее не понял как через скрипт C# достучаться до переменной в аниматоре чтоб ее изменить.