基于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。

results matching ""

    No results matching ""