Ejemplo n.º 1
0
    public void OnGUI()
    {
        if (mHitData != null)
        {
            mHitData.name           = AIFUIUtility.DrawTextField(mHitData.name, "名称", 100);
            mHitData.startTime      = EditorGUILayout.FloatField("开始触发时间", mHitData.startTime);
            mHitData.lastTime       = EditorGUILayout.FloatField("持续时间", mHitData.lastTime);
            mHitData.hitInterval    = EditorGUILayout.FloatField("攻击间隔", mHitData.hitInterval);
            mHitData.entityResName  = EditorGUILayout.TextField("显示实体资源", mHitData.entityResName);
            mHitData.startPosition  = EditorGUILayout.Vector3Field("初始位置", mHitData.startPosition);
            mHitData.startDirection = EditorGUILayout.Vector3Field("初始角度", mHitData.startDirection);
            mHitData.moveSpeed      = EditorGUILayout.FloatField("移动速度", mHitData.moveSpeed);
            mHitData.autoFaceTarget = EditorGUILayout.Toggle("自动朝向攻击目标", mHitData.autoFaceTarget);

            EditorGUILayout.Separator();
            GUILayout.Label("击中判定:");
            HitCheckBase hitCheck = mHitData.hitCheckData;
            hitCheck.shapeType = (EHitCheckShape)AIFUIUtility.DrawCustomEnum("击中框类型", hitCheck.shapeType, 100);
            hitCheck.posOffset = EditorGUILayout.Vector3Field("位置偏移", hitCheck.posOffset);
            hitCheck.radius    = EditorGUILayout.FloatField("半径", hitCheck.radius);
            if (hitCheck.shapeType == EHitCheckShape.LaserBeam)
            {
                hitCheck.height = EditorGUILayout.FloatField("激光束长度", hitCheck.height);
            }
            else
            {
                hitCheck.height = EditorGUILayout.FloatField("高度", hitCheck.height);
            }

            hitCheck.angle = EditorGUILayout.FloatField("攻击角度", hitCheck.angle);
        }
    }
Ejemplo n.º 2
0
    void OnGUI()
    {
        if (mDataUnit != null)
        {
            if (mMode == EditMode.Create)
            {
                if (GUILayout.Button("Save", GUILayout.Width(80)))
                {
                    if (AIDataEditor.CheckCreateNew(mDataUnit))
                    {
                        if (onCreateNew != null)
                        {
                            onCreateNew(mDataUnit);
                            Close();
                        }
                    }
                }
            }

            mDataUnit.Id     = EditorGUILayout.IntField("Id", mDataUnit.Id);
            mDataUnit.AiName = AIFUIUtility.DrawTextField(mDataUnit.AiName, "AiName", 100);
        }
    }
Ejemplo n.º 3
0
    void OnGUI()
    {
        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Load File New"))
        {
            AIDataMgr.instance.LoadNewData();
        }
        if (GUILayout.Button("重新加载AI配置表"))
        {
            LoadAiTable();
        }
        if (GUILayout.Button("ClearAllAI", GUILayout.Width(100)))
        {
            AIMgr.instance.DestroyAllAIs();
        }
        if (GUILayout.Button("DebugWindow", GUILayout.Width(100)))
        {
            AIDebugWindow.Open();
        }

        GUILayout.EndHorizontal();

        AIMgr.DisableAiAttack = EditorGUILayout.Toggle("关闭AI攻击", AIMgr.DisableAiAttack);
        createCamp            = (EAiCamp)EditorGUILayout.EnumPopup("创建阵营", createCamp);
        createAsAI            = EditorGUILayout.Toggle("asAi", createAsAI);
        GUILayout.BeginHorizontal();
        aiModelName = AIFUIUtility.DrawTextField(aiModelName, "AI资源名");
        aiDataId    = EditorGUILayout.IntField("AI数据ID", aiDataId);
        GUILayout.EndHorizontal();
        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Create"))
        {
            CreateAI(aiModelName, aiDataId, createCamp, createAsAI);
        }

        if (GUILayout.Button("CreateEnemy"))
        {
            CreateAI(aiModelName, aiDataId, EAiCamp.Enemy, true);
        }
        GUILayout.EndHorizontal();
        GUILayout.Label("创建列表");
        GUILayout.BeginScrollView(scrollPos);
        for (int i = 0; i < roleInfoTableManager.instance.Size(); i++)
        {
            roleInfo info = roleInfoTableManager.instance.GetByIndex(i);
            GUILayout.BeginHorizontal();
            GUILayout.Label(info.ID + "/" + info.AiDataId + "/" + info.name, GUILayout.Width(200));
            if (GUILayout.Button("创建为主角"))
            {
                CreateAI(info.resModel, info.AiDataId, EAiCamp.MainPlayer, false);
            }
            if (GUILayout.Button("创建为友方"))
            {
                CreateAI(info.resModel, info.AiDataId, EAiCamp.Friend, true);
            }
            if (GUILayout.Button("创建为敌方"))
            {
                CreateAI(info.resModel, info.AiDataId, EAiCamp.Enemy, true);
            }
            GUILayout.EndHorizontal();
        }
        GUILayout.EndScrollView();
    }