public static void Execute(Dictionary <string, string> _params, ActionDelegate _onFinish) { string targetGameObject = ""; if (!_params.TryGetValue("targetgameobject", out targetGameObject)) { Log.Error("LookFromPosition", "need params targetgameobject"); return; } string x = ""; if (!_params.TryGetValue("x", out x)) { Log.Error("LookFromPosition", "need params x"); return; } string y = ""; if (!_params.TryGetValue("y", out y)) { Log.Error("LookFromPosition", "need params y"); return; } string z = ""; if (!_params.TryGetValue("z", out z)) { Log.Error("LookFromPosition", "need params z"); return; } string duration = ""; if (!_params.TryGetValue("duration", out duration)) { Log.Error("LookFromPosition", "need params time"); return; } Vector3 position = new Vector3(float.Parse(x), float.Parse(y), float.Parse(z)); float time = float.Parse(duration); try { GameObject go = null; if (targetGameObject.Equals("camera")) { go = CameraMgr.GetMainCamera(); } else { go = ResourceMgr.FindGameObject(targetGameObject); } if (go != null) { lookFrom(go, position, time, () => { _onFinish(); return; }); } else { Log.Error("LookFromPosition", "[{0}] GameObject is not exist...", targetGameObject); } } catch (System.Exception e) { Log.Error("LookFromPosition", "Parse json has error: " + e.Message); } }