static public Cmd NewCmd <Cmd>(GameObject p_obj, float p_time = 0, E_ObjCmdTimeUnit p_unit = E_ObjCmdTimeUnit.Sec, E_ObjCmdType p_temp = E_ObjCmdType.Temp ) where Cmd : ObjCmdBase { Cmd _objCmd = p_obj.AddComponent <Cmd>(); _objCmd.cmdType = p_temp; _objCmd.delayUnit = p_unit; _objCmd.DoCmd(p_time); return(_objCmd); }
static public Cmd NewCmd <Cmd, T>(GameObject p_obj, T p_arg, bool p_relatively = false, float p_time = 0, E_ObjCmdTimeUnit p_unit = E_ObjCmdTimeUnit.Sec, E_ObjCmdType p_temp = E_ObjCmdType.Temp ) where Cmd : ObjCmdArgBase <T> { Cmd _objCmd = p_obj.AddComponent <Cmd>(); _objCmd.cmdType = p_temp; _objCmd.delayUnit = p_unit; _objCmd.relatively = p_relatively; _objCmd.DoCmd(p_arg, p_time); return(_objCmd); }
IEnumerator IeWaitForTime(float p_time, E_ObjCmdTimeUnit p_unit) { int f; switch (p_unit) { case E_ObjCmdTimeUnit.Sec: yield return(new WaitForSeconds(p_time)); break; case E_ObjCmdTimeUnit.SecReal: float _time = Time.realtimeSinceStartup; yield return(new WaitUntil( () => ( (Time.realtimeSinceStartup - _time) >= p_time) )); break; case E_ObjCmdTimeUnit.Min: yield return(IeWaitForTime(p_time * 60f, E_ObjCmdTimeUnit.Sec)); break; case E_ObjCmdTimeUnit.MinReal: yield return(IeWaitForTime(p_time * 60f, E_ObjCmdTimeUnit.SecReal)); break; case E_ObjCmdTimeUnit.Frame: for (f = 0; f < p_time; f++) { yield return(new WaitForEndOfFrame()); } break; case E_ObjCmdTimeUnit.FrameFix: for (f = 0; f < p_time; f++) { yield return(new WaitForFixedUpdate()); } break; } }