基于GameObject的脚本开发
在Unity中,可以在GameObject对象上挂载 MonoBehaviour脚本进行代码开发。
在FSEngine也支持。
下面通过例子来演示如何开发一个双端的MonoBehaviour脚本
在Unity中创建一个Prefab
1.Hierarchy窗口中右键新建一个GameObject,并且重新命名为 14
2.添加一个Rigidbody
3.新建以下代码保存在 UnityClient/Assets/Common/TestScript.cs
public class TestScript : MonoBehaviour
{
void Awake()
{
}
void Start()
{
}
void Update()
{
var rigdi = this.gameObject.GetComponent<Rigidbody>();
Debug.Log(transform.position + " " + rigdi.velocity);
}
}
4.将TestScript.cs挂载在该GameObject上
5.保存Prefab到服务端和客户端
在服务端创建房间时创建对象:
1.打开脚本文件RoomInstantiate.cs
2.在函数OnAllocRoom中添加如下代码:
var obj = room.CreateGameObject(14)
游戏启动后,匹配成功进入房间就能看到 BattleServer控制台在打印 GameObject的position和Rigidbody的velcity。当然在客户端创建该对象也会在Unity控制台窗口看到输出。
在服务端继承自MonoBehaviour的脚本开发,支持以下函数的调用:
1.Awake, GameObject创建时被调用
2.Start, GameObject创建的下一帧,Update执行前被调用
3.Update, GameObject创建后,第二帧开始每帧会被调用
4.OnDestroy, GameObject销毁时被调用
上面没有列出支持的,在服务端目前都不支持,如 OnEnable。