Esempio n. 1
0
    /// <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);
        }
Esempio n. 3
0
    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);
    }