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)); }
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, "", ""); }