Exemplo n.º 1
0
        internal override void OnRemove()
        {
            bool suc = RuntimeEngine.GetSystem <UpdateSystem>().UpdateScriptCollection.Remove(this);

            if (!suc)
            {
                RuntimeEngine.GetSystem <StartSystem>().StartScriptCollection.Remove(this);
            }
        }
Exemplo n.º 2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="collision"></param>
 public void OnCollision(Collision collision)
 {
     if (collision.OtherCollier == createrCollider)
     {
         return;
     }
     else
     {
         GameObject other = collision.OtherCollier.GameObject;
         Debug.Log("Bullet" + collision.HitPos);
         //将对方接触点的Mesh移除
         //这里有严重的问题 就是Mesh和Collider绑定的问题
         other.PosList.Remove(collision.HitPos - other.Position);
         //这是一个补丁.之后需要重写
         RuntimeEngine.GetSystem <CollisionSystem>().Colliders[collision.HitPos].Remove(collision.OtherCollier);
         other.GetComponent <Renderer>().RendererPoints.Remove(collision.HitPos - other.Position);
         //如果对方被打没了,则销毁对方的对象
         if (other.PosList.Count == 0)
         {
             GameObject.Destroy(other);
         }
         GameObject.Destroy(GameObject);
     }
 }
Exemplo n.º 3
0
 internal override void OnAdd()
 {
     RuntimeEngine.GetSystem <StartSystem>().StartScriptCollection.Add(this);
 }
Exemplo n.º 4
0
 /// <summary>
 /// 该方法是否在延迟调用
 /// </summary>
 public bool IsInvoking(string methodName)
 {
     return(RuntimeEngine.GetSystem <InvokeSystem>().IsInvoking(this, methodName));
 }
Exemplo n.º 5
0
 /// <summary>
 /// 取消一个延迟调用的方法
 /// </summary>
 public void CancleInvoke(string methodName)
 {
     RuntimeEngine.GetSystem <InvokeSystem>().CancleInvokeRequest(this, methodName);
 }
Exemplo n.º 6
0
 /// <summary>
 /// 延迟调用一个方法(该方法必须为实例无参public方法)
 /// </summary>
 public void Invoke(string methodName, float delayTime)
 {
     RuntimeEngine.GetSystem <InvokeSystem>().AddInvokeRequest(this, methodName, delayTime);
 }