internal override void OnRemove() { bool suc = RuntimeEngine.GetSystem <UpdateSystem>().UpdateScriptCollection.Remove(this); if (!suc) { RuntimeEngine.GetSystem <StartSystem>().StartScriptCollection.Remove(this); } }
/// <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); } }
internal override void OnAdd() { RuntimeEngine.GetSystem <StartSystem>().StartScriptCollection.Add(this); }
/// <summary> /// 该方法是否在延迟调用 /// </summary> public bool IsInvoking(string methodName) { return(RuntimeEngine.GetSystem <InvokeSystem>().IsInvoking(this, methodName)); }
/// <summary> /// 取消一个延迟调用的方法 /// </summary> public void CancleInvoke(string methodName) { RuntimeEngine.GetSystem <InvokeSystem>().CancleInvokeRequest(this, methodName); }
/// <summary> /// 延迟调用一个方法(该方法必须为实例无参public方法) /// </summary> public void Invoke(string methodName, float delayTime) { RuntimeEngine.GetSystem <InvokeSystem>().AddInvokeRequest(this, methodName, delayTime); }