PlayMaker — 事件

来源:互联网 发布:网络彩票8月最新消息 编辑:程序博客网 时间:2024/06/11 00:19

概述

所有的状态间的过渡都是由事件触发的。


使用Event Manager 来添加/编辑事件。

有两种基础类型的事件:

       1.系统事件:自动发送;不能编辑或删除。

       2.用户事件:你可以使用你想要的自定义事件。


系统事件

按照惯例,系统事件都是大写的。


事件描述Unity 文档START状态机启动时发送.N.A.FINISHED当激活状态所有的动作完成时发送. 见Actions.N.A.LEVEL LOADED新关卡加载后发送.OnLevelWasLoadedBECAME VISIBLE当游戏对象对任何相机可见时发送.OnBecameVisibleBECAME INVISIBLE当游戏对象不再对任何相机可见时发送.OnBecameInvisibleCOLLISION ENTER当游戏对象第一次与另一对象碰撞时发送.OnCollisionEnterCOLLISION EXIT当游戏对象结束与另一对象碰撞时发送.OnCollisionExitCOLLISION STAY当游戏对象结束与另一对象保持碰撞时发送.OnCollisionStayMOUSE DOWN当鼠标点击游戏对象时发送.OnMouseDownMOUSE DRAG当鼠标按下并在游戏对象上时发送.OnMouseDragMOUSE ENTER当鼠标在游戏对象上滑入时发送.OnMouseEnterMOUSE EXIT当鼠标在游戏对象上滑出时发送.OnMouseExitMOUSE OVER当鼠标在游戏对象上时发送.OnMouseOverMOUSE UP当鼠标在游戏对象释放上时发送.OnMouseUpTRIGGER ENTER当游戏对象进入一个触发器时发送.OnTriggerEnterTRIGGER EXIT当游戏对象退出一个触发器时发送.OnTriggerExitTRIGGER STAY当游戏对象保持在一个触发器时发送.OnTriggerStayCONTROLLER COLLIDER HIT当游戏对象上的角色控制器与一个对象碰撞时发送OnContollerColliderHit

 

     备注

            上面的“游戏对象”指拥有有限状态机(FSM)的游戏对象。

            在COLLISION 或者 TRIGGER 事件后,你可以使用 GetCollisionInfoGetTriggerInfo, 或 GetControllerHitInfo 来决定如何应对碰撞。

            MOUSE事件在状态机里控制GUIText或GUITexture 组件是很有用的。见 GUI Element Actions。


用户事件

 在Event Manager里添加任意你想控制状态机的事件。


    发送事件

    发送事件给一个FSM有一些方式:

         使用动作

         使用动画事件

         由脚本发送事件

     由动作发送事件

        发送一个事件的最基本的动作:

  • Send Event
  • Send Event To FSM
       其他基于条件发送事件的动作:

  • Collision Event
  • Trigger Event
  • Mouse Pick Event
有很多 (LOTS )归类的动作可供快速访问!


动画事件

你可以使用Unity的动画窗口来发送事件给状态机。

见 Sending Animation Events to an FSM


译文源自:

https://hutonggames.fogbugz.com/default.asp?W128


0 0