Ejemplo n.º 1
0
        private apAnimPlayUnit MakePlayUnit(apAnimPlayData playData, apAnimPlayUnit.BLEND_METHOD blendMethod, bool isAutoEndIfNotloop)
        {
            //새로 만들고
            //그 전에..
            //재생중인 PlayUnit이 있으면 그걸 사용하자
            //레이어는 같아야 한다.
            apAnimPlayUnit existPlayUnit = null;

            for (int i = 0; i < _animPlayUnits.Count; i++)
            {
                if (_animPlayUnits[i]._linkedAnimClip == playData._linkedAnimClip &&
                    _animPlayUnits[i].IsUpdatable

                    )
                {
                    existPlayUnit = _animPlayUnits[i];
                    break;
                }
            }
            if (existPlayUnit != null)
            {
                //Debug.Log("아직 재생중인 PlayUnit을 다시 재생하는 요청이 왔다. [" + existPlayUnit._linkedAnimClip._name + "]");
                existPlayUnit.SetSubOption(blendMethod, isAutoEndIfNotloop, GetNextPlayUnitRequestOrder(), GetNextRequestLinkKey());

                _nPlayedUnit = _animPlayUnits.Count;
                return(existPlayUnit);
            }

            apAnimPlayUnit newPlayUnit = new apAnimPlayUnit(this, GetNextPlayUnitRequestOrder(), GetNextRequestLinkKey());

            newPlayUnit.SetAnimClip(playData, _layer, blendMethod, isAutoEndIfNotloop, false);

            //if(!newPlayUnit._linkedAnimClip.IsPlaying)
            //{
            //	if(newPlayUnit.Frame != newPlayUnit.StartFrame)
            //	{
            //		Debug.Log("새로운 재생 요청 - 프레임이 초기화되지 않음 [" + newPlayUnit._linkedAnimClip._name + "]");
            //	}
            //	newPlayUnit.ResetPlay();
            //}

            //리스트에 넣자
            _animPlayUnits.Add(newPlayUnit);

            _nPlayedUnit    = _animPlayUnits.Count;
            _isInitPlayUnit = false;
            return(newPlayUnit);
        }
Ejemplo n.º 2
0
        private apAnimPlayUnit MakePlayUnit(apAnimPlayData playData, apAnimPlayUnit.BLEND_METHOD blendMethod, bool isAutoEndIfNotloop)
        {
            //새로 만들고
            //그 전에..
            //재생중인 PlayUnit이 있으면 그걸 사용하자
            //레이어는 같아야 한다.
            apAnimPlayUnit existPlayUnit = null;

            for (int i = 0; i < _animPlayUnits.Count; i++)
            {
                if (_animPlayUnits[i]._linkedAnimClip == playData._linkedAnimClip &&
                    _animPlayUnits[i].IsUpdatable

                    )
                {
                    existPlayUnit = _animPlayUnits[i];
                    break;
                }
            }
            if (existPlayUnit != null)
            {
                //Debug.Log("아직 재생중인 PlayUnit을 다시 재생하는 요청이 왔다. [" + existPlayUnit._linkedAnimClip._name + "]");
                existPlayUnit.SetSubOption(blendMethod, isAutoEndIfNotloop);

                _nPlayedUnit = _animPlayUnits.Count;
                return(existPlayUnit);
            }

            apAnimPlayUnit newPlayUnit = new apAnimPlayUnit(this);

            newPlayUnit.SetAnimClip(playData, _layer, blendMethod, isAutoEndIfNotloop, false);

            //리스트에 넣자
            _animPlayUnits.Add(newPlayUnit);

            _nPlayedUnit = _animPlayUnits.Count;
            return(newPlayUnit);
        }