Exemple #1
0
    // Use this for initialization
    void Start()
    {
        //mDelayActiveTime = float.MaxValue;
        //mCurrentLifeTime = 0;
        mStatus = FishStatus.Status_UnActive;
        transform.Rotate(0, 0, mCurRotation);
        mCurRotation = Mathf.Deg2Rad * mCurRotation;
        if (Mathf.Cos(mCurRotation) < 0)
        {
            gameObject.GetComponent <UITexture>().flip = UIBasicSprite.Flip.Vertically;
        }

        mPosX = transform.localPosition.x;
        mPosY = transform.localPosition.y;

        PathRender pathRender = this.GetComponent <PathRender>();

        if (pathRender)
        {
            mFishPath  = pathRender.FishPathData;
            mBaseSpeed = mFishPath.baseSpeed;
        }
    }
    void OnGUI()
    {
        GameObject activeGameObject = Selection.activeGameObject;

        if (null == activeGameObject)
        {
            return;
        }
        PathRender pathRender = activeGameObject.GetComponent <PathRender>();

        if (null == pathRender)
        {
            return;
        }
        FishPath fishPath = pathRender.FishPathData;

        if (null == fishPath)
        {
            if (GUILayout.Button("创建新路径", GUILayout.Width(100)))
            {
                pathRender.FishPathData = new FishPath();
                fishPath = pathRender.FishPathData;
            }
            return;
        }


        NGUIEditorTools.DrawHeader("Control Points", true);
        {
            GUILayout.BeginHorizontal();
            GUILayout.Space(3f);
            GUILayout.BeginVertical();

            EditorGUILayout.BeginHorizontal();
            fishPath.renderPath = EditorGUILayout.Toggle("Render Path", fishPath.renderPath);
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(10);
            fishPath.lineColor = EditorGUILayout.ColorField("Line Color", fishPath.lineColor);
            GUILayout.Space(5);


            EditorGUILayout.BeginHorizontal();
            fishPath.baseSpeed = EditorGUILayout.FloatField("Speed", fishPath.baseSpeed);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            fishPath.mPathId = EditorGUILayout.IntField("PathId", fishPath.mPathId);
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(5);
            if (GUILayout.Button("Load"))
            {
                string filepath = EditorUtility.OpenFilePanel("Load", Application.dataPath + "/Resources/Pathes/", "bytes");
                if (filepath.Length > 0)
                {
                    fishPath = AiPathManager.getInstance().loadOnePath(filepath);
                    pathRender.FishPathData = fishPath;
                    EditorUtility.SetDirty(Selection.activeGameObject);
                }
            }

            GUILayout.Space(5);
            EditorGUILayout.BeginHorizontal();


            if (GUILayout.Button("Save INI"))
            {
                AiPathManager.getInstance().saveIni(fishPath);
            }
            GUILayout.Space(5);
            if (GUILayout.Button("Save TAB"))
            {
                AiPathManager.getInstance().saveTab(fishPath);
            }

            EditorGUILayout.EndHorizontal();

            GUILayout.Space(5);
            if (GUILayout.Button("Reset Path"))
            {
                if (EditorUtility.DisplayDialog("Resetting path?", "Are you sure you want to delete all control points?", "Delete", "Cancel"))
                {
                    fishPath.ResetPath();
                    EditorUtility.SetDirty(Selection.activeGameObject);
                    return;
                }
            }

            if (selectIndex > -1 && selectIndex < fishPath.numberOfControlPoints)
            {
                FishPathControlPoint point = fishPath.controlPoints[selectIndex];
                if (point)
                {
                    point.highLight = GUILayout.Toggle(point.highLight, "HighLight");
                    point.color     = EditorGUILayout.ColorField("Line Colour", point.color);

                    point.mTime           = EditorGUILayout.FloatField("Time", point.mTime);
                    point.mSpeedScale     = EditorGUILayout.FloatField("SpeedScale", point.mSpeedScale);
                    point.mRotationChange = EditorGUILayout.FloatField("RotationChange", point.mRotationChange);
                }
            }

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("添加控制点"))
            {
                fishPath.AddPoint();
                EditorUtility.SetDirty(pathRender);
            }
            EditorGUILayout.EndHorizontal();

            mScroll = GUILayout.BeginScrollView(mScroll);

            bool delete = false;

            for (int i = 0; i < fishPath.numberOfControlPoints; i++)
            {
                GUI.backgroundColor = selectIndex == i ? Color.white : new Color(0.8f, 0.8f, 0.8f);
                GUILayout.BeginHorizontal("AS TextArea", GUILayout.MinHeight(20f));
                GUILayout.Space(5f);
                GUILayout.Label(i.ToString(), GUILayout.Width(24f));
                if (GUILayout.Button("hello", "OL TextField", GUILayout.Height(25f)))
                {
                    selectIndex = i;
                    fishPath.SelectedLineIndex = selectIndex;
                }
                if (GUILayout.Button("X", GUILayout.Width(22f)))
                {
                    fishPath.DeletePoint(i);
                    if (selectIndex == i)
                    {
                        selectIndex = -1;
                    }
                    i--;
                }
                GUILayout.EndHorizontal();
            }
            GUILayout.EndScrollView();
            GUILayout.EndVertical();
            GUILayout.Space(3f);
            GUILayout.EndHorizontal();
        }

        if (GUI.changed)
        {
            fishPath.CaculateFinePoints();
            EditorUtility.SetDirty(Selection.activeGameObject);
            EditorApplication.MarkSceneDirty();
        }
    }
Exemple #3
0
 // Use this for initialization
 void Start()
 {
     mAiPath     = null;
     mPathRender = this.GetComponent <PathRender>();
 }
Exemple #4
0
    void OnGUI()
    {
        GameObject activeGameObject = Selection.activeGameObject;

        if (null == activeGameObject)
        {
            return;
        }
        PathRender pathRender = activeGameObject.GetComponent <PathRender>();

        if (null == pathRender)
        {
            return;
        }

        if (GUILayout.Button("加载路径文件", GUILayout.Width(100)))
        {
            string filePath = EditorUtility.OpenFilePanel("Open Ai Bytes", Application.dataPath + "/Resources/Pathes/", "bytes");

            if (filePath.Length > 0)
            {
                selectedPathId = 0;
                AiPathManager.getInstance().initialize(filePath);
            }
        }

        int pathCnt = AiPathManager.getInstance().getPathCount();

        if (pathCnt == 0)
        {
            return;
        }
        selectedPathId = EditorGUILayout.IntSlider("AI index", selectedPathId, 0, pathCnt);

        FishPath fishPath = pathRender.FishPathData;

        if (GUILayout.Button("更新路径", GUILayout.Width(100)))
        {
            pathRender.FishPathData = AiPathManager.getInstance().getPath(selectedPathId);
            fishPath = pathRender.FishPathData;
            EditorUtility.SetDirty(Selection.activeGameObject);
        }

        NGUIEditorTools.DrawHeader("Control Points", true);
        {
            if (null == fishPath)
            {
                return;
            }
            GUILayout.BeginHorizontal();
            GUILayout.Space(3f);
            GUILayout.BeginVertical();

            EditorGUILayout.BeginHorizontal();
            fishPath.renderPath = EditorGUILayout.Toggle("Render Path", fishPath.renderPath);
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(10);
            fishPath.lineColor = EditorGUILayout.ColorField("Line Color", fishPath.lineColor);
            GUILayout.Space(5);


            EditorGUILayout.BeginHorizontal();
            fishPath.baseSpeed = EditorGUILayout.FloatField("Speed", fishPath.baseSpeed);
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(5);
            if (GUILayout.Button("Load"))
            {
                string filepath = EditorUtility.OpenFilePanel("Load", Application.dataPath + "/Resources/Pathes/", "bytes");
                if (filepath.Length > 0)
                {
                    //fish.FishPathData = PathConfigManager.GetInstance().Load(filepath);
                    //fish.FishPathData.FileName = Path.GetFileName(filepath);
                    EditorUtility.SetDirty(Selection.activeGameObject);
                }
            }

            mScroll = GUILayout.BeginScrollView(mScroll);
            for (int i = 0; i < fishPath.numberOfControlPoints; i++)
            {
                GUI.backgroundColor = selectIndex == i ? Color.white : new Color(0.8f, 0.8f, 0.8f);
                GUILayout.BeginHorizontal("AS TextArea", GUILayout.MinHeight(20f));
                GUILayout.Space(5f);
                GUILayout.Label(i.ToString(), GUILayout.Width(24f));
                if (GUILayout.Button("hello", "OL TextField", GUILayout.Height(25f)))
                {
                    selectIndex = i;
                    fishPath.SelectedLineIndex = selectIndex;
                }
                GUILayout.EndHorizontal();
            }
            GUILayout.EndScrollView();
            GUILayout.EndVertical();
            GUILayout.Space(3f);
            GUILayout.EndHorizontal();
        }

        if (GUI.changed)
        {
            fishPath.CaculateFinePoints();
            EditorUtility.SetDirty(Selection.activeGameObject);
        }
    }