示例#1
0
        public static void OnScaleHandleDrop(Battlehub.RTHandles.BaseHandle _handle)
        {
            JSONArray aryClones = new JSONArray();

            foreach (Transform transform in _handle.Targets)
            {
                JSONClass clone = new JSONClass();
                clone.Add("uuid", transform.name.Replace("(Clone)", ""));
                clone.Add("x", transform.localScale.x.ToString());
                clone.Add("y", transform.localScale.y.ToString());
                clone.Add("z", transform.localScale.z.ToString());
                aryClones.Add(clone);
            }
            Debug.Log(aryClones.ToJSON(0));
            JSAPI.MessageToJS(JSAPI.MSG.JSEditorOnCloneScaleUpdate, "0", aryClones.ToJSON(0));
        }
示例#2
0
        private static IEnumerator importVX()
        {
            string path = System.IO.Path.Combine(VRXX.Platform.GetPersistentDataPath(), "latest.vx");
            WWW    www  = new WWW(path);

            yield return(www);

            if (null != www.error)
            {
                Log.Error("EditorMgr::importVX", www.error);
                yield break;
            }

            try
            {
                //Read json
                int    jsonSize = VRXX.Convert.ByteToInt(www.bytes, 0);
                string json     = VRXX.Convert.ByteToString(www.bytes, 4, jsonSize);

                Log.Info("EditorMgr::importVX", "parse bean success");

                JSONNode  root     = JSON.Parse(json);
                JSONArray slateAry = root["slates"].AsArray;

                foreach (JSONNode slateNode in slateAry)
                {
                    string slateUUID = slateNode["guid"].Value;
                    Log.Trace("EditorMgr:importVX", "new a image {0}", slateUUID);
                    NewImage(slateUUID);
                    Editor.Image image = fsm.FindState(slateUUID) as Editor.Image;

                    JSONArray preloadAry = slateNode["preloads"].AsArray;
                    foreach (JSONNode node in preloadAry)
                    {
                        string group   = node["group"].Value;
                        string package = node["package"].Value;
                        string file    = node["file"].Value;
                        string guid    = node["guid"].Value;
                        //string id = package + "@" + file;

                        if (group.Equals("skybox"))
                        {
                            ResourceMgr.PreloadAsset(package, file
                                                     , () =>
                            {
                                //startLoading();
                            }
                                                     , (_obj) =>
                            {
                                image.skybox = _obj as Material;
                            }
                                                     , (_err) =>
                            {
                                //onNotify(_err);
                            });
                        }
                    }

                    JSONArray triggerAry = slateNode["triggers"].AsArray;
                    foreach (JSONNode node in triggerAry)
                    {
                        string cloneUUID = node["uuid"].Value;
                        string alias     = node["alias"].Value;
                        float  px        = node["px"].AsFloat;
                        float  py        = node["py"].AsFloat;
                        float  pz        = node["pz"].AsFloat;
                        float  rx        = node["rx"].AsFloat;
                        float  ry        = node["ry"].AsFloat;
                        float  rz        = node["rz"].AsFloat;
                    }
                }

                //offset
                int count_ugcfile = VRXX.Convert.ByteToInt(www.bytes, 4 + jsonSize);
                Log.Info("EditorMgr", "has {0} ugcfiles", count_ugcfile);

                int offset = 4 + jsonSize + 4;
                for (int i = 0; i < count_ugcfile; ++i)
                {
                    int filenamesize = VRXX.Convert.ByteToInt(www.bytes, offset);
                    offset += 4;

                    string filename = VRXX.Convert.ByteToString(www.bytes, offset, filenamesize);
                    offset += filenamesize;

                    Log.Info("EditorMgr", "ugcfile is {0}", filename);

                    int filesize = VRXX.Convert.ByteToInt(www.bytes, offset);
                    offset += 4;

                    byte[] bytes = new byte[filesize];
                    System.Array.Copy(www.bytes, offset, bytes, 0, filesize);
                    offset += filesize;
                    UGCMgr.Cache(filename, bytes);
                }
            }
            catch (System.Exception e)
            {
                Log.Exception("EditorMgr::importVX", e);
            }
            JSAPI.MessageToJS(JSAPI.MSG.JSEditorOnImportFinish, "", "");
        }