private void AddCollider(CollisionType to) { if (to == CollisionType.SpriteRendererAABB) { if (this.collider == null) { gameObject.AddComponent <BoxCollider>(); } if (applyHandler == null) { applyHandler = new SpriteRenderer.ApplyHandler(applyBounding); } spriteRenderer.applyHandler += applyHandler; } else if (to == CollisionType.AnimationComponentBB) { BuildCollider(); if (applyMultiBoundingHandler == null) { applyMultiBoundingHandler = new SpriteAnimation.SpriteAnimatonDelegate(applyBounding); } spriteAnimation.AddComponentUpdateHandler(SpriteAnimationComponentUpdateType.PostUpdateComponent, applyMultiBoundingHandler); } }
private void RemoveCollider(CollisionType from) { if (from == CollisionType.SpriteRendererAABB) { if (this.collider != null && this.collider is BoxCollider) { if (Application.isPlaying) { Object.DestroyObject(this.collider); } //else // Object.DestroyImmediate(this.collider); } if (applyHandler != null) { spriteRenderer.applyHandler -= applyHandler; applyHandler = null; } } else if (from == CollisionType.AnimationComponentBB) { RemoveAllCollider(); if (applyMultiBoundingHandler != null) { spriteAnimation.RemoveComponentUpdateHandler(SpriteAnimationComponentUpdateType.PostUpdateComponent, applyMultiBoundingHandler); applyMultiBoundingHandler = null; } } }
void OnEnable() { if (moveDelegate == null) { spriteRenderer = GetComponent <SpriteRenderer>(); moveDelegate = new SpriteAnimation.SpriteAnimatonDelegate(binderHandler); GetComponent <SpriteAnimation>().AddComponentUpdateHandler(SpriteAnimationComponentUpdateType.PostUpdateComponent, moveDelegate); } }
void OnEnable() { if (moveDelegate == null) { spriteRenderer = GetComponent<SpriteRenderer>(); moveDelegate = new SpriteAnimation.SpriteAnimatonDelegate(binderHandler); GetComponent<SpriteAnimation>().AddComponentUpdateHandler(SpriteAnimationComponentUpdateType.PostUpdateComponent, moveDelegate); } }
// Use this for initialization void Start() { spriteAnimation = GetComponent<SpriteAnimation>(); spriteRenderer = GetComponent<SpriteRenderer>(); updateHandler = PreUpdateHandler; //register a function to handler the animation evaluate spriteAnimation.AddComponentUpdateHandler( SpriteAnimationComponentUpdateType.PreUpdateComponent, updateHandler); }
private void RemoveCollider(CollisionType from) { if (from == CollisionType.SpriteRendererAABB) { if (this.collider != null && this.collider is BoxCollider) { if (Application.isPlaying) Object.DestroyObject(this.collider); //else // Object.DestroyImmediate(this.collider); } if (applyHandler != null) { spriteRenderer.applyHandler -= applyHandler; applyHandler = null; } } else if (from == CollisionType.AnimationComponentBB) { RemoveAllCollider(); if (applyMultiBoundingHandler != null) { spriteAnimation.RemoveComponentUpdateHandler(SpriteAnimationComponentUpdateType.PostUpdateComponent, applyMultiBoundingHandler); applyMultiBoundingHandler = null; } } }
private void AddCollider(CollisionType to) { if (to == CollisionType.SpriteRendererAABB) { if (this.collider == null) { gameObject.AddComponent<BoxCollider>(); } if (applyHandler == null) { applyHandler = new SpriteRenderer.ApplyHandler(applyBounding); } spriteRenderer.applyHandler += applyHandler; } else if (to == CollisionType.AnimationComponentBB) { BuildCollider(); if (applyMultiBoundingHandler == null) { applyMultiBoundingHandler = new SpriteAnimation.SpriteAnimatonDelegate(applyBounding); } spriteAnimation.AddComponentUpdateHandler(SpriteAnimationComponentUpdateType.PostUpdateComponent, applyMultiBoundingHandler); } }