private IEnumerator TestAnimationRunnerBounds() { _spriteAnimator.ResetAnimation(_sprite); UpdateSpriteFrame(); int noCam = 0; _spriteCollider = _renderer.GetComponent <SpriteCollider>(); if (_spriteCollider != null) { _spriteCollider.OnCreate(null); } while (_spriteAnimator.Active) { if (!_looping) { break; } if (Camera.current == null) { yield return(null); noCam++; if (noCam > 500) { break; } continue; } Game.SpriteCamera = Camera.current; noCam = 0; var orientation = SpriteFacingControl.GetCameraSide(_facing, transform, transform, 5, out var inMargin); _billboard.Apply(_renderer.transform, _backwards, ref _lastAngleHeight); if (_spriteAnimator.CheckFrameUpdate()) { UpdateSpriteFrame(); } else if (_orientation != orientation && (!inMargin || (!orientation.IsAdjacent(_orientation)))) { _orientation = orientation; UpdateSpriteFrame(); } if (!_spriteAnimator.Active && _looping) { _spriteAnimator.ResetAnimation(_sprite); } if (_spriteCollider != null) { _spriteCollider.UpdateCollider(); } yield return(null); } }
public void OnCreate(PrefabEntity entity) { MaterialPropertyBlock materialBlock = new MaterialPropertyBlock(); _renderer.GetPropertyBlock(materialBlock); _spriteCollider = _renderer.GetComponent <SpriteCollider>(); if (_sprite == null) { return; } _renderer.sprite = _sprite.GetSpriteFrame(0); materialBlock.SetTexture("_BumpMap", _sprite.NormalMap); materialBlock.SetTexture("_MainTex", _renderer.sprite.texture); _renderer.SetPropertyBlock(materialBlock); if (_spriteCollider != null) { _spriteCollider.UpdateCollider(); } }