void Start() { TeachIp = new IPEndPoint(IPAddress.Parse(File.ReadAllText("ip.txt")), 16000); this.clientTeach = new UdpClient(12000); ip = new IPEndPoint(IPAddress.Any, 0); angle = DefaultAngle; lastAngle = DefaultAngle; otherAngle = DefaultAngle; command = default(TeachingCommand); angleWithLocation = default(AngleWithLocation); otherAngleWithLocation = default(AngleWithLocation); SendThreading = new Thread(new ThreadStart(SendRotation)); SendThreading.Start(); SendThreading.Name = "SendEvent" + base.transform.name; RecieveThread = new Thread(new ThreadStart(RecieveData)); RecieveThread.Start(); RecieveThread.Name = "RecieveEvent"; RecieveFromTeachThread = new Thread(new ThreadStart(RecieveDataFromTeach)); RecieveFromTeachThread.Start(); RecieveFromTeachThread.Name = "RecieveFromTeachEvent"; //UdpPlatform.Instance.SendString("Udp Start"); Task.Run(() => { while (true) { //var ipRe = new IPEndPoint(IPAddress.Parse("192.168.0.135"), 16000); //var bytes = this.clientTeach.Receive(ref ipRe); var bytes = this.clientTeach.Receive(ref TeachIp); var length = bytes.Length; if (length == StructHelper.GetStructSize <TeachingCommand>()) { command = StructHelper.BytesToStruct <TeachingCommand>(bytes); this.IsSendFromTeachingPlatform = command.IsStart == 1; } } }); Task.Run(() => { while (true) { UdpPlatform.Instance.SendData(this.angleWithLocation, new IPEndPoint(IPAddress.Broadcast, 16000)); Thread.Sleep(20); } }); if (this.MemDB.Init(this.memName) == 0 || this.MemDB.Init("GAME_SHARED_MEM_0000") == 0) { Debug.Log("Run"); } else { Debug.Log("no Run"); Time.timeScale = 0f; } }
private static int AngleDefSortComparison(AngleDef def1, AngleDef def2) { if (def1.m_Angle < def2.m_Angle) { return(-1); } if (def1.m_Angle > def2.m_Angle) { return(1); } return(0); }
private float CalculateSpeed(AngleDef angle1, AngleDef angle2) { try { var deltaTime = Mathf.Abs(angle1.Time - angle2.Time); return((Mathf.Abs((angle1.Roll - angle2.Roll) / deltaTime) + Mathf.Abs((angle1.Pitch - angle2.Pitch) / deltaTime)) * 0.02f); } catch { return(0); } }
private void SendRotation() { while (true) { myAngleTime += 0.0015f; if (this.IsSend && this.IsSendFromTeachingPlatform == true) { this.angle.Time = myAngleTime; this.angle.Speed = CalculateSpeed(angle, lastAngle); UdpPlatform.Instance.SendData(this.angle); } lastAngle = angle; Thread.Sleep(1); } }
private void Awake() { if (this.m_AngleDefs.Count != 0) { for (int i = 0; i < this.m_AngleDefs.Count; i++) { this.m_sortedAngleDefIndexes.Add(i); } this.m_sortedAngleDefIndexes.Sort(delegate(int index1, int index2) { AngleDef def = this.m_AngleDefs[index1]; AngleDef def2 = this.m_AngleDefs[index2]; return(AngleDefSortComparison(def, def2)); }); this.m_angleIndex = 0; this.m_minAngleIndex = 0; this.m_maxAngleIndex = 0; float angle = this.m_AngleDefs[0].m_Angle; float num3 = angle; for (int j = 0; j < this.m_sortedAngleDefIndexes.Count; j++) { AngleDef def = this.m_AngleDefs[this.m_sortedAngleDefIndexes[j]]; if (def.m_Angle < angle) { angle = def.m_Angle; this.m_minAngleIndex = j; } if (def.m_Angle > num3) { num3 = def.m_Angle; this.m_maxAngleIndex = j; } if (def.m_Default) { this.m_angleIndex = j; this.SetAngle(def.m_Angle); } } } }
private void RotateRight() { AngleDef angleDef = this.GetAngleDef(); float angle = Mathf.MoveTowards(this.m_angle, angleDef.m_Angle, this.m_RotationSpeed * UnityEngine.Time.deltaTime); if (angle >= angleDef.m_Angle) { if ((this.m_requestedRotationDir == 0) || (this.m_angleIndex == this.m_maxAngleIndex)) { this.SetAngle(angle); this.StopRotating(); } else { this.m_angleIndex++; } } else { this.SetAngle(angle); } }
public static int AngleDefSortComparison(AngleDef def1, AngleDef def2) { object[] objArray1 = new object[] { def1, def2 }; return(MonoClass.smethod_14 <int>(TritonHs.MainAssemblyPath, "", "GVGLaserGun", "AngleDefSortComparison", objArray1)); }