/// <summary> /// 创建一个Trigger,懒得改ObjManager了,就在这里创建一个CabalTrigger实例吧,实际上应该由ObjManager管理并且tick做检测的 /// </summary> /// <returns>The trigger.</returns> /// <param name="id">Identifier.</param> public static CabalTrigger CreateTrigger(int id) { Tab_Trigger tLine = TableManager.GetTriggerByID(id, 0); if (tLine != null) { GameObject newTrigger = new GameObject("Trigger" + id.ToString()); if (newTrigger != null) { newTrigger.transform.position = new Vector3(tLine.PosX, tLine.PosY, tLine.PosZ); newTrigger.transform.rotation = Quaternion.Euler(tLine.RotX, tLine.RotY, tLine.RotZ); newTrigger.transform.localScale = new Vector3(tLine.ScaleX, tLine.ScaleY, tLine.ScaleZ); CabalTrigger trigger = newTrigger.AddComponent <CabalTrigger>(); if (trigger != null) { trigger.ID = id; } return(trigger); } } else { LogModule.ErrorLog("Cant find trigger {0}", id); return(null); } return(null); }
public uint Execute(PacketDistributed ipacket) { GC_CREATE_TRIGGER packet = (GC_CREATE_TRIGGER )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic int triggerId = packet.NTriggerId; CabalTrigger.CreateTrigger(triggerId); return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public override void OnInspectorGUI() { CabalTrigger cabalTrigger = (CabalTrigger)target; base.OnInspectorGUI(); if (GUILayout.Button("Create table string")) { tableStr = string.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\t{9}\t{10}", cabalTrigger.ID, cabalTrigger.gameObject.name, cabalTrigger.transform.position.x, cabalTrigger.transform.position.y, cabalTrigger.transform.position.z, 0, cabalTrigger.transform.rotation.eulerAngles.y, 0, cabalTrigger.transform.localScale.x, cabalTrigger.transform.localScale.y, cabalTrigger.transform.localScale.z); } // 强行设置不能绕xz旋转 cabalTrigger.transform.localRotation = Quaternion.Euler(0, cabalTrigger.transform.localRotation.eulerAngles.y, 0); EditorGUILayout.TextArea(tableStr); }