示例#1
0
    string currentPatch           = string.Empty;                      //current patch;
    // Use this for initialization

    IEnumerator Start()
    {
        ICharacterSystem sys = new CharacterSystem();

        yield return(StartCoroutine(sys.Initialize()));

        clothData = ClothModel.GetData();
        IniClothType();
        playerParent = GameObject.Find("Stage/playerRoot");

        EventTriggerListener.Get(male).onClicks.Add(male_Click);
        EventTriggerListener.Get(female).onClicks.Add(female_Click);

        EventTriggerListener.Get(lod1).onClicks.Add(delegate() { TaskServices.CreateTask(lod_Click(1)).Start(); });
        EventTriggerListener.Get(lod2).onClicks.Add(delegate() { TaskServices.CreateTask(lod_Click(2)).Start(); });
        EventTriggerListener.Get(lod3).onClicks.Add(delegate() { TaskServices.CreateTask(lod_Click(3)).Start(); });
        EventTriggerListener.Get(lod4).onClicks.Add(delegate() { TaskServices.CreateTask(lod_Click(4)).Start(); });
        EventTriggerListener.Get(lod5).onClicks.Add(delegate() { TaskServices.CreateTask(lod_Click(5)).Start(); });
        EventTriggerListener.Get(lod6).onClicks.Add(delegate() { TaskServices.CreateTask(lod_Click(0)).Start(); });
        EventTriggerListener.Get(tempBtn).onClicks.Add(tempBtn_Click);

        female_Click();
        //male_Click();

        UseTimeAlphaManager.StartTimeAlpha(UseTimeAlphaManager.LoadRole);
    }
示例#2
0
    public override void PutOnAction()
    {
        base.PutOnAction();

        List <ClothModel> avs = characterData.avatars;

        List <ClothModel> result = avs.FindAll(
            delegate(ClothModel v)
        {
            string type = v.wearpos;
            if (type == WearPosConst.WEAR_POS_PANT ||
                type == WearPosConst.WAER_POS_CLOTH)
            {
                return(true);
            }
            return(false);
        });

        for (int i = 0; i < result.Count; i++)
        {
            ClothModel c = result[i];
            PutOnDelete.Add(c.wearpos);
            avs.Remove(result[i]);
        }
    }
示例#3
0
    public void TakeOff(ClothModel cm)
    {
        OffCount = 1;
        ICloths ich = ClothFactory.CreatCloth(resType, umaContext, characterData, characterSlotOverlay, character, characterBase, cm);

        ich.TakeOff(OffFinish);
    }
        /// <summary>
        /// Normal Draw Function.
        /// </summary>
        /// <param name="gt">The gt.</param>
        /// <param name="obj">The obj.</param>
        /// <param name="cam">The cam.</param>
        /// <param name="lights">The lights.</param>
        /// <param name="render">The render.</param>
        public void Drawn(Microsoft.Xna.Framework.GameTime gt, SceneControl.IObject obj, Cameras.ICamera cam, IList <Light.ILight> lights, SceneControl.RenderHelper render)
        {
            PhysxClothObject PhysxClothObject = obj.PhysicObject as PhysxClothObject;
            ClothModel       ClothModel       = obj.Modelo as ClothModel;

            StillDesign.PhysX.MathPrimitives.Vector3[] pos  = PhysxClothObject.Cloth.GetMeshData().PositionsStream.GetData <StillDesign.PhysX.MathPrimitives.Vector3>();
            StillDesign.PhysX.MathPrimitives.Vector3[] norm = PhysxClothObject.Cloth.GetMeshData().NormalsStream.GetData <StillDesign.PhysX.MathPrimitives.Vector3>();

            for (int i = 0; i < ClothModel.BatchInformation.NumVertices; i++)
            {
                ClothModel.vertexPositionNormalTexture[i].Position = pos[i].AsXNA();
                ClothModel.vertexPositionNormalTexture[i].Normal   = norm[i].AsXNA();
            }

            ClothModel.BatchInformation.VertexBuffer.SetData <VertexPositionNormalTexture>(ClothModel.vertexPositionNormalTexture);

            if (rasterizerState != null && rasterizerState != render.PeekRasterizerState())
            {
                rasterStateFlag = true;
                render.PushRasterizerState(rasterizerState);
            }

            shader.iDraw(gt, obj, render, cam, lights);

            if (rasterStateFlag)
            {
                render.PopRasterizerState();
                rasterStateFlag = false;
            }
        }
    public void Initiliaze()
    {
        int               index = 1;
        List <string>     files = PathHelper.getAllChildFiles(CharacterConst.prefabPath + "/" + CharacterConst.ResHeight, ".prefab");
        List <ClothModel> xmls  = new List <ClothModel>();

        for (int i = 0; i < files.Count; i++)
        {
            IObjectBase objBase = new ObjectBase(files[i]);
            GameObject  obj     = objBase.Load <GameObject>();

            string sex = objBase.Name.Substring(0, 2);
            if (sex != "01" && sex != "02")
            {
                continue;
            }

            if (!obj.GetComponent <SlotOverlay>())
            {
                continue;
            }

            ClothModel xl = EditorUtil.CreateClothModelByAsset(objBase);
            xmls.Add(xl);
            index++;
        }
        string json = xmls.JsonTransferString();

        FileHelper.CreatFile(fold, name, json);
        AssetDatabase.Refresh();
    }
示例#6
0
    public void PutOn(ClothModel cm)
    {
        OnCount = 1;
        ICloths ich = ClothFactory.CreatCloth(resType, umaContext, characterData, characterSlotOverlay, character, characterBase, cm);

        cloths.Add(ich);
        ich.PutOn(OnFinish);
    }
示例#7
0
    public void PutOn(ClothModel cm)
    {
        CharacterClothItem cloth = new CharacterClothItem(resType, umaContext, characterData, characterSlotOverlay, character, characterBase);

        clothItems.Add(cloth);
        cloth.AddListenerOn(ClothActionFinish);
        cloth.PutOn(cm);
    }
示例#8
0
    public TemplateClothItem(ClothModel _cm) // cm
    {
        cm   = _cm;
        name = _cm.resname;
        string      icon    = string.Format("{0}/Tmp/AllResoruces/{1}/icon/{2}.png", Application.dataPath, CharacterConst.targetFold, name);
        IObjectBase iconobj = new ObjectBase(icon);

        texture = iconobj.Load <Texture2D>();
    }
    }                                            // cloth pant shoe hair
    //public List<UmaDnaItem> dna { get; set; }// body shap
    //public SkinColor skin { get; set; }//skin color

    //public Dictionary<EnumUmaParamters, float> getDna()
    //{
    //    Dictionary<EnumUmaParamters, float> dic = new Dictionary<EnumUmaParamters, float>();

    //     System.Array arrys = System.Enum.GetValues(typeof(EnumUmaParamters));
    //     for (int j = 0; j < arrys.Length; j++)
    //     {
    //         EnumUmaParamters eup = (EnumUmaParamters)arrys.GetValue(j);

    //         if(dna!=null && dna.Count>0)
    //         {
    //             UmaDnaItem cur = dna.Find((UmaDnaItem d) =>
    //             {
    //                 return d.dnaKey == (int)eup;
    //             });
    //             if (cur != null)
    //             {
    //                 dic.Add(eup, (float)cur.dnaValue);
    //             }
    //             else
    //             {
    //                 float v = UmaDnaConst.dnaItemDic[eup].def;
    //                 dic.Add(eup, v);
    //             }
    //         }
    //         else
    //         {
    //             float v = UmaDnaConst.dnaItemDic[eup].def;
    //             dic.Add(eup, v);
    //         }
    //     }

    //     return dic;
    //}

    public static CharacterData defData(EnumCharacterType type)
    {
        CharacterData cd = new CharacterData();

        cd.sex     = (int)type;
        cd.avatars = ClothModel.GetDefault(type, 1);
        //cd.skin = SkinColor.transfer(Color.white);
        return(cd);
    }
示例#10
0
 public Cloth
     (ECharacterResType type, UMAContext _umaContext, CharacterData _characterData, ICharacterSlotOverly _characterSlotOverlay, ICharacterPlayer _character, ICharacterBase _characterBase, ClothModel _cm)
 {
     resType              = type;
     umaContext           = _umaContext;
     characterSlotOverlay = _characterSlotOverlay;
     character            = _character;
     characterData        = _characterData;
     characterBase        = _characterBase;
     cm          = _cm;
     PutOnDelete = new List <string>();
 }
示例#11
0
    void IniatializeScroll()
    {
        patchDetial.transform.GetComponent <RectTransform>().sizeDelta = Vector2.zero;

        foreach (Transform item in patchDetial.transform)
        {
            Destroy(item.gameObject);
        }

        List <ClothModel> list = clothData.FindAll((ClothModel m) =>
        {
            string sex = currentType == EnumCharacterType.Charater_Female ? "02" : "01";
            return(m.sex == sex && m.wearpos == currentPatch);
        });

        if (list.Count == 0)
        {
            return;
        }

        Object o = Resources.Load("UI/patchDetialItem");

        patchDetial.transform.GetComponent <RectTransform>().sizeDelta = new Vector2(400, 80 * (list.Count + 1));

        GameObject go = null;

        for (int i = 0; i < list.Count; i++)
        {
            ClothModel cm = list[i];
            go = Instantiate(o) as GameObject;
            go.transform.parent     = patchDetial.transform;
            go.transform.localScale = Vector3.one;

            go.GetComponent <patchDetialItem>().Ini(cm);

            EventTriggerListener.Get(go).onClicks.Add(() =>
            {
                player.PutOn(cm);
            });
        }

        go                      = Instantiate(o) as GameObject;
        go.name                 = currentPatch + " take off";
        go.transform.parent     = patchDetial.transform;
        go.transform.localScale = Vector3.one;

        go.GetComponent <patchDetialItem>().text.text = currentPatch + " take off";
        EventTriggerListener.Get(go).onClicks.Add(() =>
        {
            player.TakeOff(currentPatch);
        });
    }
示例#12
0
    public static ClothModel CreateClothModelByAsset(IObjectBase iob)
    {
        if (iob == null)
        {
            return(null);
        }
        ClothModel cm = new ClothModel();

        cm.itemid  = iob.Name;
        cm.resname = iob.Name;
        cm.icon    = iob.Name;
        cm.sex     = iob.Name.Substring(0, 2);
        cm.wearpos = iob.Name.Substring(2, 2);
        return(cm);
    }
示例#13
0
    public void TakeOff(CallBack callback)
    {
        List <ClothModel> avs    = characterData.avatars;
        ClothModel        cmodel = avs.Find((ClothModel _cm) =>
        {
            return(_cm.itemid == cm.itemid);
        });

        avs.Remove(cmodel);
        characterSlotOverlay.RemoveWeap(wearpon);

        if (callback != null)
        {
            callback();
        }
    }
示例#14
0
    protected override void webLoadRes(object[] objs)
    {
        cm           = objs[0] as ClothModel;
        tempCallback = objs[1] as CallBackWithParams <Object>;


        if (cm.sex == "01")
        {
            request = new SOAService_Resource_Character_Bundle_Male(resType, cm.resname);
        }
        else
        {
            request = new SOAService_Resource_Character_Bundle_Female(resType, cm.resname);
        }
        request.AddListener(LoadComplelte);
        request.Run();
    }
示例#15
0
    protected override void localLoadRes(object[] objs)
    {
        cm           = objs[0] as ClothModel;
        tempCallback = objs[1] as CallBackWithParams <Object>;

        string sexFold = CharacterConst.Female;

        if (cm.sex == "01")
        {
            sexFold = CharacterConst.Male;
        }
        string prefab = string.Format("{0}/{1}/{2}/{3}", resType.ToString(), sexFold, cm.resname, cm.resname);

        Debug.Log(prefab);
        Object go = Resources.Load <Object>(prefab);

        tempCallback(go);
    }
示例#16
0
    public void TakeOff(string weapon)
    {
        if (string.IsNullOrEmpty(weapon))
        {
            return;
        }

        List <ClothModel> cms = characterData.avatars;
        ClothModel        cm  = cms.Find((ClothModel c) =>
        {
            return(c.wearpos == weapon);
        });

        if (cm == null)
        {
            return;
        }

        TakeOff(cm.Copy <ClothModel>());
    }
示例#17
0
    public void PutOn(CallBack callback)
    {
        OnCallback = callback;

        #region modify data
        List <ClothModel> avs = characterData.avatars;

        PutOnAction();

        #region delete included

        int index1 = avs.FindIndex(delegate(ClothModel v)
        {
            string type = v.wearpos;
            if (type == wearpon)
            {
                return(true);
            }
            return(false);
        });
        if (index1 > -1)
        {
            ClothModel c = avs[index1];
            PutOnDelete.Add(c.wearpos);
            avs.RemoveAt(index1);
        }

        #endregion

        avs.Add(cm);
        #endregion

        #region load resoruces

        Initilze(callback);

        #endregion
    }
示例#18
0
    public override void PutOnAction()
    {
        base.PutOnAction();

        List <ClothModel> avs = characterData.avatars;

        int index = avs.FindIndex(
            delegate(ClothModel v)
        {
            string type = v.wearpos;
            if (type == WearPosConst.WEAR_POS_SUIT)
            {
                return(true);
            }
            return(false);
        });

        if (index > -1)
        {
            ClothModel c = avs[index];
            PutOnDelete.Add(c.wearpos);
            avs.RemoveAt(index);
        }
    }
示例#19
0
    public void TakeOff(ClothModel cm)
    {
        CharacterClothItem cloth = new CharacterClothItem(resType, umaContext, characterData, characterSlotOverlay, character, characterBase);

        cloth.TakeOff(cm);
    }
示例#20
0
 public void Ini(ClothModel cm)
 {
     clothModel      = cm;
     text.text       = clothModel.resname;
     gameObject.name = clothModel.resname;
 }
示例#21
0
 public Hair(ECharacterResType type, UMAContext _umaContext, CharacterData _characterData, ICharacterSlotOverly _characterSlotOverlay, ICharacterPlayer _character, ICharacterBase _characterBase, ClothModel _cm)
     : base(type, _umaContext, _characterData, _characterSlotOverlay, _character, _characterBase, _cm)
 {
 }
示例#22
0
 public void PutOn(ClothModel cm)
 {
     characterCloth.PutOn(cm);
 }
示例#23
0
    public static ICloths CreatCloth
        (ECharacterResType type, UMAContext _umaContext, CharacterData _characterData, ICharacterSlotOverly _characterSlotOverlay, ICharacterPlayer _character, ICharacterBase _characterBase, ClothModel _cm)
    {
        ICloths ich = null;

        switch (_cm.wearpos)
        {
        case WearPosConst.WAER_POS_CLOTH:
            ich = new Coat(type, _umaContext, _characterData, _characterSlotOverlay, _character, _characterBase, _cm);
            break;

        case WearPosConst.WEAR_POS_PANT:
            ich = new Pant(type, _umaContext, _characterData, _characterSlotOverlay, _character, _characterBase, _cm);
            break;

        case WearPosConst.WEAR_POS_SUIT:
            ich = new Suit(type, _umaContext, _characterData, _characterSlotOverlay, _character, _characterBase, _cm);
            break;

        case WearPosConst.WAER_POS_HAIR:
            ich = new Hair(type, _umaContext, _characterData, _characterSlotOverlay, _character, _characterBase, _cm);
            break;

        case WearPosConst.WEAR_POS_SHOE:
            ich = new Shoe(type, _umaContext, _characterData, _characterSlotOverlay, _character, _characterBase, _cm);
            break;
        }
        return(ich);
    }
示例#24
0
 public void TakeOff(ClothModel cm)
 {
     characterCloth.TakeOff(cm);
 }
示例#25
0
    //IEnumerator Start()
    //{
    //    ICharacterSystem sys = new CharacterSystem();
    //    yield return StartCoroutine(sys.Initialize());
    //    CharacterData data = CharacterData.defData(EnumCharacterType.Charater_Female);
    //    data.avatars = ClothModel.GetDefault(EnumCharacterType.Charater_Female);
    //    data.dna = new List<UmaDnaItem>();
    //    UmaDnaItem item = new UmaDnaItem();
    //    item.dnaKey = (int)EnumUmaParamters.headSize;
    //    item.dnaValue = 0.1f;
    //    data.dna.Add(item);

    //    ICharacterPlayer player1 = CharacterPlayerFactory.Creat(data);
    //    player1.objectName = "female1";
    //    player1.Creat();
    //    yield break;
    //}

    // Use this for initialization
    IEnumerator Start()
    {
        ICharacterSystem sys = new CharacterSystem();

        yield return(StartCoroutine(sys.Initialize()));

        CharacterData data = CharacterData.defData(EnumCharacterType.Charater_Female);

        data.avatars = ClothModel.GetDefault(EnumCharacterType.Charater_Female);
        ICharacterPlayer player1 = CharacterPlayerFactory.Creat(data);

        player1.objectName = "female1";
        player1.Creat();

        ICharacterPlayer player1_L = CharacterPlayerFactory.Creat(data, ECharacterResType.Low);

        player1_L.objectName = "female1_low";
        player1_L.Creat();

        data.avatars = ClothModel.GetDefault(EnumCharacterType.Charater_Female, 2);
        ICharacterPlayer player2 = CharacterPlayerFactory.Creat(data);

        player2.objectName = "female2";
        player2.Creat();

        ICharacterPlayer player2_L = CharacterPlayerFactory.Creat(data, ECharacterResType.Low);

        player2_L.objectName = "female2_low";
        player2_L.Creat();

        data.avatars = ClothModel.GetDefault(EnumCharacterType.Charater_Female, 3);
        ICharacterPlayer player3 = CharacterPlayerFactory.Creat(data);

        player3.objectName = "female3";
        player3.Creat();

        ICharacterPlayer player3_L = CharacterPlayerFactory.Creat(data, ECharacterResType.Low);

        player3_L.objectName = "female3_low";
        player3_L.Creat();

        data         = CharacterData.defData(EnumCharacterType.Charater_Male);
        data.avatars = ClothModel.GetDefault(EnumCharacterType.Charater_Male, 1);
        ICharacterPlayer Mplayer1 = CharacterPlayerFactory.Creat(data);

        Mplayer1.objectName = "male1";
        Mplayer1.Creat();

        ICharacterPlayer Mplayer1_L = CharacterPlayerFactory.Creat(data, ECharacterResType.Low);

        Mplayer1_L.objectName = "male1_low";
        Mplayer1_L.Creat();

        data.avatars = ClothModel.GetDefault(EnumCharacterType.Charater_Male, 2);
        ICharacterPlayer Mplayer2 = CharacterPlayerFactory.Creat(data);

        Mplayer2.objectName = "male2";
        Mplayer2.Creat();

        ICharacterPlayer Mplayer2_L = CharacterPlayerFactory.Creat(data, ECharacterResType.Low);

        Mplayer2_L.objectName = "male2_low";
        Mplayer2_L.Creat();

        data.avatars = ClothModel.GetDefault(EnumCharacterType.Charater_Male, 3);
        ICharacterPlayer Mplayer3 = CharacterPlayerFactory.Creat(data);

        Mplayer3.objectName = "male3";
        Mplayer3.Creat();

        ICharacterPlayer Mplayer3_L = CharacterPlayerFactory.Creat(data, ECharacterResType.Low);

        Mplayer3_L.objectName = "male3_low";
        Mplayer3_L.Creat();
    }