Exemple #1
0
        public void Init(IFaceMatInfoProvider provider, Renderer part)
        {
            this._faceMatInfoProvider = provider;
            this._facePartRenderer    = part;
            FaceMatInfo info = new FaceMatInfo {
                texture = part.material.mainTexture as Texture2D,
                tile    = part.material.mainTextureScale,
                offset  = part.material.mainTextureOffset
            };

            this._originFaceMatInfo = info;
            string[] matInfoNames = provider.GetMatInfoNames();
            this._frameNames    = new string[matInfoNames.Length + 1];
            this._frameNames[0] = "origin";
            int index  = 0;
            int length = matInfoNames.Length;

            while (index < length)
            {
                this._frameNames[index + 1] = matInfoNames[index];
                index++;
            }
        }
Exemple #2
0
 public void Init(Animator animator, int characterId, int heartLevel, Renderer leftEyeRenderer, Renderer rightEyeRenderer, Renderer mouthRenderer, IFaceMatInfoProvider leftEyeProvider, IFaceMatInfoProvider rightEyeProvider, IFaceMatInfoProvider mouthProvider, Transform headRoot = null)
 {
     if (!this._init)
     {
         this._animator   = animator;
         this._heartLevel = heartLevel;
         string characterName = this.CharacterName(characterId);
         this._touchPatternList = TouchPatternData.GetTouchPatternList(characterName);
         this._itemIndexRecord  = new List <int>(20);
         this._faceAnimation    = new FaceAnimation();
         ConfigFaceAnimation faceAnimation = FaceAnimationData.GetFaceAnimation(characterName);
         FacePartControl     leftEye       = new FacePartControl();
         leftEye.Init(leftEyeProvider, leftEyeRenderer);
         FacePartControl rightEye = new FacePartControl();
         rightEye.Init(rightEyeProvider, rightEyeRenderer);
         FacePartControl mouth = new FacePartControl();
         mouth.Init(mouthProvider, mouthRenderer);
         this._faceAnimation.Setup(faceAnimation, leftEye, rightEye, mouth);
         if (this._faceEffect != null)
         {
             this._faceEffect.Uninit();
             this._faceEffect = null;
         }
         if (headRoot != null)
         {
             GameObject original = Resources.Load <GameObject>("FaceEffect/FFX_" + characterName);
             if (original != null)
             {
                 GameObject     obj3      = UnityEngine.Object.Instantiate <GameObject>(original);
                 MonoFaceEffect component = obj3.GetComponent <MonoFaceEffect>();
                 if (component != null)
                 {
                     this._faceEffect = new FaceEffect();
                     obj3.transform.SetParent(headRoot, false);
                     this._faceEffect.Init(component);
                 }
                 else
                 {
                     UnityEngine.Object.Destroy(obj3);
                 }
             }
         }
         this.enable = false;
         this._init  = true;
     }
 }