Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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();
            }
        }