Beispiel #1
0
    void Update()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        if(Input.GetMouseButtonDown(1)){
            if (Physics.Raycast(ray, out hit, 100)){

                UMAData tempUMA = hit.collider.GetComponent("UMAData") as UMAData;
                umaDynamicAvatar = tempUMA.gameObject.GetComponent("UMADynamicAvatar") as UMADynamicAvatar;

                if(tempUMA){
                    //Clear saved data of old UMA
                    if(umaDynamicAvatar){
                        umaDynamicAvatar.streamedUMA = null;
                    }

                    umaData = tempUMA;
                    if(cameraTrack){
                        cameraTrack.target = umaData.transform;
                    }

                    umaDna = umaData.umaRecipe.umaDna[typeof(UMADnaHumanoid)] as UMADnaHumanoid;
                    ReceiveValues();

                    //Save functionality
                    umaDynamicAvatar.SaveToMemoryStream();
                }
            }
        }

        if(umaData){
            TransferValues();

            for(int i = 0; i < sliderControlList.Length; i++){
                if(sliderControlList[i].pressed == true){
                    UpdateUMAShape();
                }
            }
        }

        //Load functionality
        if( Input.GetKeyDown(KeyCode.Z) ){
            if(umaData && umaDynamicAvatar){
                //SPOT
                umaDynamicAvatar.LoadFromMemoryStream();
                umaData.isShapeDirty = true;
                umaData.Dirty();

                umaDna = umaData.umaRecipe.umaDna[typeof(UMADnaHumanoid)] as UMADnaHumanoid;
                ReceiveValues();
                //SPOT
                umaDynamicAvatar.SaveToMemoryStream();
            }
        }
    }