//----------------------------------------------------------------- protected void OnDestroy() { ClearClick(); #if ASYNC_MODE string abName = name.ToLower().Replace("panel", ""); ResManager.UnloadAssetBundle(abName + AppConst.ExtName); #endif QUtil.ClearMemory(); Debug.Log("~" + name + " was destroy!"); }
private Quaternion _BakeQ(AnimationCurve xCurve, AnimationCurve yCurve, AnimationCurve zCurve, AnimationCurve wCurve, float t) { float x = xCurve.Evaluate(t); float y = yCurve.Evaluate(t); float z = zCurve.Evaluate(t); float w = wCurve.Evaluate(t); Quaternion q = new Quaternion(x, y, z, w); return(QUtil.Normalize(q)); }
private Quaternion _ReflectQ(Quaternion rot, Axis axisValue, Vector3 planeNormal) { switch (axisValue) { case Axis.XY: return(QUtil.Reflect_XY(rot, planeNormal)); case Axis.XZ: return(QUtil.Reflect_XZ(rot, planeNormal)); case Axis.YZ: return(QUtil.Reflect_YZ(rot, planeNormal)); default: Dbg.LogErr("MirrorCtrl._ReflectQ: unexpected axisValue: {0}", axisValue); return(Quaternion.identity); } }
private Quaternion _ReflectQ(Quaternion oldQ, Axis axisValue, Vector3 planeNormal) { switch (axisValue) { case Axis.XY: return(QUtil.Reflect_XY(oldQ, planeNormal)); case Axis.XZ: return(QUtil.Reflect_XZ(oldQ, planeNormal)); case Axis.YZ: return(QUtil.Reflect_YZ(oldQ, planeNormal)); default: Dbg.LogErr("AnimMirrorEditorWindow._ReflectQ: unexpected axisValue: {0}", axisValue); return(Quaternion.identity); } }
public static void EncodeLuaFile(string srcFile, string outFile) { if (!srcFile.ToLower().EndsWith(".lua")) { File.Copy(srcFile, outFile, true); return; } bool isWin = true; string luaexe = string.Empty; string args = string.Empty; string exedir = string.Empty; string currDir = Directory.GetCurrentDirectory(); if (Application.platform == RuntimePlatform.WindowsEditor) { isWin = true; luaexe = "luajit.exe"; args = "-b " + srcFile + " " + outFile; exedir = AppDataPath.Replace("assets", "") + "LuaEncoder/luajit/"; } else if (Application.platform == RuntimePlatform.OSXEditor) { isWin = false; luaexe = "./luac"; args = "-o " + outFile + " " + srcFile; exedir = AppDataPath.Replace("assets", "") + "LuaEncoder/luavm/"; } Directory.SetCurrentDirectory(exedir); ProcessStartInfo info = new ProcessStartInfo(); info.FileName = luaexe; info.Arguments = args; info.WindowStyle = ProcessWindowStyle.Hidden; info.ErrorDialog = true; info.UseShellExecute = isWin; QUtil.Log(info.FileName + " " + info.Arguments); Process pro = Process.Start(info); pro.WaitForExit(); Directory.SetCurrentDirectory(currDir); }
public override void DoUpdate() { base.DoUpdate(); if (!m_targetSpline) { return; //do nothing if no target is specified } Vector3 initPos = m_tr.GetPosition(ESpace.World); //use world space Quaternion initRot = m_tr.GetQuaternion(ESpace.World); Vector3 endPos = initPos; Quaternion endRot = m_tr.rotation; Vector3 endTan = Vector3.forward; Vector3 endUp = Vector3.up; if (m_followCurve) { // calculate pos/tan/up together m_targetSpline.CalcTransformed(m_offset, out endPos, out endTan, out endUp); endRot = QUtil.LookAt(m_forwardDir, m_upDir, endTan, endUp); } else { // calculate pos only endPos = m_targetSpline.GetTransformedPosition(m_offset); } if (!Mathf.Approximately(m_influence, 1f)) { endPos = Misc.Lerp(initPos, endPos, m_influence); if (m_followCurve) { endRot = Quaternion.Slerp(initRot, endRot, m_influence); } } m_tr.SetPosition(endPos, ESpace.World); m_tr.SetQuaternion(endRot, ESpace.World); }
public override void DoUpdate() { base.DoUpdate(); if (!m_target) { return; //do nothing if no target is specified } Quaternion initRot = m_tr.rotation; Vector3 selfPos = m_tr.position; Vector3 targetPos = m_target.position; Vector3 upDir = Vector3.up; switch (m_RotateAxis) { case EAxisD.X: upDir = m_tr.right; break; case EAxisD.Y: upDir = m_tr.up; break; case EAxisD.Z: upDir = m_tr.forward; break; default: Dbg.LogErr("LockedTrack.DoUpdate: unexpected rotate axis: {0}", m_RotateAxis); break; } Vector3 lookDir = targetPos - selfPos; Vector3 projLookDir = Vector3.ProjectOnPlane(lookDir, upDir); if (projLookDir != Vector3.zero) { Quaternion endRot = QUtil.LookAt(m_LookAxis, m_RotateAxis, projLookDir, upDir); if (!Mathf.Approximately(m_influence, 1f)) { endRot = Quaternion.Slerp(initRot, endRot, m_influence); } m_tr.SetQuaternion(endRot, ESpace.World); } }