예제 #1
0
    //选中某个部件
    public void SetSelectResObj(Transform t)
    {
        ResDragItem oldDragItem = curResDragItem;
        Transform   oldObj      = curSelectResObj;

        curSelectResObj = t;

        if (oldObj == null)
        {
            if (t == null)
            {
                ImageScaleSlider.gameObject.SetActive(false);
                return;
            }
            curResDragItem = curSelectResObj.GetComponent <ResDragItem>();
            curResDragItem.SetOutline(true);
        }
        else
        {
            if (t == null)
            {
                oldDragItem.SetOutline(false);
                ImageScaleSlider.gameObject.SetActive(false);
                return;
            }
            if (oldObj.GetInstanceID() != t.GetInstanceID())
            {
                oldDragItem.SetOutline(false);
                curResDragItem = curSelectResObj.GetComponent <ResDragItem>();
                curResDragItem.SetOutline(true);
            }
            else
            {
                return;
            }
        }
        //以下是t不为空,且与old不是同一个物体才会执行的
        //if (ImageScaleSlider.gameObject.activeSelf == false)
        //{
        //    ImageScaleSlider.gameObject.SetActive(true);
        //}
        //float scale = t.localScale.x - 0.5f;
        //Debug.Log(scale);
        //ImageScaleSlider.value = scale;
        t.SetAsLastSibling();
    }
예제 #2
0
    public void LoadFileAnimal(PartDataWhole _whole)
    {
        if (_whole == null)
        {
            Debug.LogError("file is null:" + _whole.JoinType);
        }
        List <PartData> part = _whole.PartDataList;

        for (int i = 0; i < part.Count; i++)
        {
            PartType partType = part[i].PType;
            if (partType != PartType.Body && partType != PartType.Pixels && partType != PartType.drawPixels)
            {
                Vector3 pos   = new Vector3(part[i].Pos[0], part[i].Pos[1], part[i].Pos[2]);
                Vector3 scale = new Vector3(part[i].Scale[0], part[i].Scale[1], part[i].Scale[2]);
                Debug.Log(pos);
                GameObject obj  = null;
                string     path = "Prefabs/join|gen_res";
                if (partType == PartType.LeftHand || partType == PartType.RightHand || partType == PartType.LeftLeg || partType == PartType.RightLeg)//手脚
                {
                    obj = UIHelper.instance.LoadPrefab(path, joinMainView.HandLegCG.transform, pos, scale);
                }
                else if (partType == PartType.TrueBody)
                {
                    obj = UIHelper.instance.LoadPrefab(path, joinMainView.TrueBodyCG.transform, pos, scale);
                }
                else if (partType == PartType.Head)
                {
                    joinMainView.targetHeadPos = pos;
                    obj = UIHelper.instance.LoadPrefab(path, joinMainView.HeadCG.transform, Vector3.zero, Vector3.one, false);
                    joinMainView.EyeMouthHairCG.transform.SetParent(obj.transform);
                    obj.transform.localScale    = scale;
                    obj.transform.localPosition = pos;
                }
                else if (partType == PartType.LeftEye || partType == PartType.RightEye || partType == PartType.Mouth || partType == PartType.Hair)
                {
                    obj = UIHelper.instance.LoadPrefab(path, joinMainView.EyeMouthHairCG.transform, pos, scale);
                }
                else if (partType == PartType.Hat || partType == PartType.HeadWear)
                {
                    obj = UIHelper.instance.LoadPrefab(path, joinMainView.HatHeadwearCG.transform, pos, scale);
                }
                Image     img = obj.transform.GetComponent <Image>();
                Texture2D t   = new Texture2D(500, 500, TextureFormat.RGBA32, false);
                t.filterMode = FilterMode.Point;
                t.LoadImage(part[i].ImgBytes);
                t.Apply(false);
                Sprite s = Sprite.Create(t, new Rect(0, 0, t.width, t.height), new Vector2(0.5f, 0.5f));
                img.sprite = s;
                img.SetNativeSize();
                obj.transform.localScale = scale;

                ResDragItem item = obj.GetComponent <ResDragItem>();
                if (item == null)
                {
                    item = obj.AddComponent <ResDragItem>();
                }
                item.partType = partType;
                item.LoadInitItem(partType, s);
            }
        }
    }
예제 #3
0
    public void LoadFile(PartDataWhole _whole)
    {
        Texture2D       drawTexture = null;
        List <PartData> part        = _whole.PartDataList;

        for (int i = 0; i < part.Count; i++)
        {
            PartType partType = part[i].PType;
            if (partType != PartType.Body && partType != PartType.Pixels && partType != PartType.drawPixels)
            {
                Vector3    pos   = new Vector3(part[i].Pos[0], part[i].Pos[1], part[i].Pos[2]);
                Vector3    scale = new Vector3(part[i].Scale[0], part[i].Scale[1], part[i].Scale[2]);
                GameObject obj   = null;
                string     path  = "Prefabs/join|gen_res";
                if (partType == PartType.LeftHand || partType == PartType.RightHand || partType == PartType.LeftLeg || partType == PartType.RightLeg)//手脚
                {
                    obj = UIHelper.instance.LoadPrefab(path, joinMainView.HandLegCG.transform, pos, scale);
                }
                else if (partType == PartType.LeftEye || partType == PartType.RightEye || partType == PartType.Mouth || partType == PartType.Hair)
                {
                    obj = UIHelper.instance.LoadPrefab(path, joinMainView.EyeMouthHairCG.transform, pos, scale);
                }
                else if (partType == PartType.Hat || partType == PartType.HeadWear)
                {
                    obj = UIHelper.instance.LoadPrefab(path, joinMainView.HatHeadwearCG.transform, pos, scale);
                }

                Image     img = obj.transform.GetComponent <Image>();
                Texture2D t   = new Texture2D(500, 500, TextureFormat.RGBA32, false);
                t.filterMode = FilterMode.Point;
                t.LoadImage(part[i].ImgBytes);
                t.Apply(false);
                Sprite s = Sprite.Create(t, new Rect(0, 0, t.width, t.height), new Vector2(0.5f, 0.5f));
                img.sprite = s;
                img.SetNativeSize();
                obj.transform.localScale = scale;

                ResDragItem item = obj.GetComponent <ResDragItem>();
                if (item == null)
                {
                    item = obj.AddComponent <ResDragItem>();
                }
                item.partType = partType;
                item.LoadInitItem(partType, s);
            }
            else
            {
                //不管
                if (partType == PartType.Body)
                {
                    Texture2D t = new Texture2D(500, 500, TextureFormat.RGBA32, false);
                    t.filterMode = FilterMode.Point;
                    t.LoadImage(part[i].ImgBytes);
                    t.Apply(false);
                    drawTexture = t;
                }
            }
        }
        if (joinMainView.mobilePaint != null)
        {
            Texture2D t = new Texture2D(500, 500, TextureFormat.RGBA32, false);
            t.filterMode = FilterMode.Point;
            t.LoadImage(_whole.DrawTexture);
            t.Apply(false);
            joinMainView.mobilePaint.SetPixelsTest(t, drawTexture);
        }
    }