Пример #1
0
    private void Start()
    {
#if !UNITY_EDITOR
        try
        {
#endif

        if (ModelRoot == null)
        {
            ModelRoot = transform.GetComponentInChildren <CreateFakeCharacter>();
        }

        if (DragRotate == null)
        {
            DragRotate = transform.GetComponentInChildren <UIDragRotate>();
        }

#if !UNITY_EDITOR
    }

    catch (Exception ex)
    {
        Logger.Error(ex.ToString());
    }
#endif
    }
Пример #2
0
        void Awake()
        {
#if !UNITY_EDITOR
            try
            {
#endif
            ModelRoot = gameObject.transform.FindChild("Anim/ModelView").GetComponent <CreateFakeCharacter>();

#if !UNITY_EDITOR
        }
        catch (Exception ex)
        {
            Logger.Error(ex.ToString());
        }
#endif
        }
Пример #3
0
    //�ӳ���ObjCharacter
    private void CreateChar(int dataId,
                            bool bsync,
                            Dictionary <int, int> dictEquip    = null,
                            Action <ObjFakeCharacter> callback = null,
                            int elfId = -1,
                            int layer = 5)
    {
        if (null != BackgroundWidget)
        {
            if (null != BackgroundWidget.drawCall)
            {
                CustomRenderQueue  = BackgroundWidget.drawCall.renderQueue + +1;
                CustomRenderQueue += BackgroundWidget.SkippedRenderQueue / 2;
            }
        }

        Character = ObjFakeCharacter.Create(dataId, dictEquip, character =>
        {
            if (Character.GetObjId() != character.GetObjId())
            {
                character.Destroy();
                return;
            }

            var xform = Character.gameObject.transform;

            //Character.gameObject.SetLayerRecursive(LayerMask.NameToLayer(GAMELAYER.UI));
            xform.parent        = gameObject.transform;
            xform.localPosition = Vector3.zero;
            xform.localScale    = Vector3.one;
            xform.forward       = Vector3.back;

            if (null != callback)
            {
                callback(Character);

                if (-1 != elfId)
                {
                    if (null == ElfCreator)
                    {
                        ElfCreator = gameObject.AddComponent <CreateFakeCharacter>();
                        ElfCreator.CustomRenderQueue = CustomRenderQueue;
                    }
                    ElfCreator.DestroyFakeCharacter();

                    var tbElf = Table.GetElf(elfId);
                    if (tbElf == null)
                    {
                        return;
                    }
                    var elfDataId      = tbElf.ElfModel;
                    var tableCharacter = Table.GetCharacterBase(elfDataId);
                    if (null == tableCharacter)
                    {
                        return;
                    }

                    var tempUniqueId = UniqueId;
                    ElfCreator.Create(elfDataId, null, elf =>
                    {
                        if (character.State == ObjState.Deleted)
                        {
                            elf.Destroy();
                            return;
                        }

                        if (!gameObject.active)
                        {
                            ElfCreator.Character = null;
                            elf.Destroy();
                            return;
                        }

                        if (null == Character)
                        {
                            ElfCreator.Character = null;
                            elf.Destroy();
                            return;
                        }

//                      if (tempUniqueId != UniqueId)
//                      {
//                          ElfCreator.Character = null;
//                          elf.Destroy();
//                          return;
//                      }

                        var t    = elf.gameObject.transform;
                        t.parent = Character.gameObject.transform.parent;

                        t.forward = Vector3.back;
                        //var angle = Character.gameObject.transform.localRotation.eulerAngles.y - 90.0f;
                        var scale = tbElf.CameraZoom * 0.0001f;
                        if (scale <= 0)
                        {
                            Logger.Debug("!!!tbElf.CameraZoom<=0");
                            scale = 1;
                        }
                        var heightOffset = tbElf.Offset * 0.0001f;
                        var temp         = ElfOffset + new Vector3(0, heightOffset, 0f);
                        t.localPosition  = temp;
                        t.localScale     = Vector3.one * scale;

                        t.parent = Character.gameObject.transform.parent;
                    }, -1, false, layer);
                }
            }
        }, layer, bsync, CustomRenderQueue, UniqueId++);
    }