Esempio n. 1
0
    //For task 2 (IN SCENE VIEW HANDLES)
    public void OnSceneGUI()
    {
        CustomLineRenderer Selected = (CustomLineRenderer)target;

        Color OldColor = Handles.color;

        Handles.color = Color.blue;

        EditorGUI.BeginChangeCheck();
        Selected.Radius = Handles.RadiusHandle(Quaternion.identity, Selected.transform.position, Selected.Radius);
        Selected.Sides  = (int)Handles.ScaleSlider(Selected.Sides, Selected.transform.position, Selected.transform.right, Quaternion.identity, HandleUtility.GetHandleSize(new Vector3(1, 1, 1)), 1f);
        //This is just to limit the handles from going below 3 and over 100 (the limits i put on the sliders)
        Selected.Sides = Mathf.Max(Selected.Sides, 3);
        Selected.Sides = Mathf.Min(Selected.Sides, 100);
        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(Selected, "Changed LineRenderer Variables through scene");
            if (EditorApplication.isPlaying)
            {
                Selected.CreatePoints();
            }
        }

        Handles.color = OldColor;
    }
Esempio n. 2
0
    //public GameObject[] test;


    void Start()
    {
        line = GetComponent <CustomLineRenderer>();
        line.SetVertexCount(linecount);
        line.SetWidth(1.5f, 1.5f);
        line.renderer.sharedMaterial = material;
    }
    void OnGUI()
    {
        GUILayout.Label("Base Settings", EditorStyles.boldLabel);
        MyLineRenderer = (LineRenderer)EditorGUILayout.ObjectField(MyLineRenderer, typeof(LineRenderer), true);
        if (MyLineRenderer)
        {
            CustomLineRenderer Selected = MyLineRenderer.GetComponent <CustomLineRenderer>();
            Assert.IsNotNull(Selected, "Object have no Custom Line Renderer");

            EditorGUILayout.Separator();

            EditorGUI.BeginChangeCheck();
            Selected.Sides  = EditorGUILayout.IntSlider("Sides", Selected.Sides, 3, 100);
            Selected.Radius = EditorGUILayout.Slider("Radius", Selected.Radius, 0, 100);
            Selected.Width  = EditorGUILayout.Slider("Width", Selected.Width, 0, 100);
            if (EditorGUI.EndChangeCheck())
            {
                Undo.RecordObject(Selected, "Changed LineRenderer Variables through scene");
                if (EditorApplication.isPlaying)
                {
                    Selected.CreatePoints();
                }
            }
            //This is just for updating the actual variables in the editor window (should be more optimized for actual use)
            Repaint();
        }
    }
Esempio n. 4
0
	public RouteNavigation(CustomLineRenderer line, LineRenderer directLine, GoogleMapNavigation nav)
	{
		lineRenderer = line;
		mapNavigation = nav;
		directLineRenderer = directLine;
		toolBox = ToolBox.Instance;
		data = toolBox.data;
		goal = data.route.Waypoints[data.route.Start];
		if (goal.Destinations.Count > 0)
		{
			nextGoal = data.route.Waypoints[goal.Destinations[0]];
		}
		toolBox.download.AddObserver(this);
	}
Esempio n. 5
0
    protected override void OnDragStart()
    {
        GameObject g = new GameObject("newLine");

        LineRenderer cLineRenderer = g.AddComponent <LineRenderer>();

        cLineRenderer.material   = Resources.Load("LineMaterial", typeof(Material)) as Material;
        cLineRenderer.startWidth = 0.01f;
        cLineRenderer.endWidth   = 0.01f;

        currentDraggingLine            = g.AddComponent <CustomLineRenderer>();
        currentDraggingLine.StartPoint = transform.position;

        currentGameObject = g;
    }
Esempio n. 6
0
    protected override void OnDragFinish()
    {
        ConnectedNode node = (SelectionManager.Instance.HoverNode as ConnectedNode);

        if (node)
        {
            if (node != this)
            {
                currentDraggingLine.EndPoint = node.transform.position;
                currentDraggingLine          = null;
                return;
            }
        }
        Destroy(currentGameObject);
        currentDraggingLine = null;
    }
Esempio n. 7
0
    //For task 1 (NOT USED ANYMORE SINCE I NOW HAVE A SEPERATE EDITOR WINDOW)
    public override void OnInspectorGUI()
    {
        CustomLineRenderer Selected = (CustomLineRenderer)target;

        EditorGUI.BeginChangeCheck();
        Selected.Sides            = (int)EditorGUILayout.Slider("Sides", Selected.Sides, 3, 100);
        Selected.Radius           = EditorGUILayout.Slider("Radius", Selected.Radius, 0, 100);
        Selected.Width            = EditorGUILayout.Slider("Width", Selected.Width, 0, 100);
        Selected.DrawEditorCircle = EditorGUILayout.Toggle("Show Gizmo Circle", Selected.DrawEditorCircle);
        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(Selected, "Changed LineRenderer Variables");
            if (EditorApplication.isPlaying)
            {
                Selected.CreatePoints();
            }
        }
        //This is to update the scene view without having to hover to mouse over it
        SceneView.RepaintAll();
    }
Esempio n. 8
0
    private IEnumerator ActivateTrap()
    {
        float normalizedTime = 0;

        while (normalizedTime <= 1f)
        {
            normalizedTime += Time.deltaTime / trapActivationTime;
            yield return(null);
        }

        List <RaycastHit2D> hits = new List <RaycastHit2D>(new RaycastHit2D[] {
            Physics2D.CircleCast(transform.position, 0.5f, Vector2.up, bombDistance),
            Physics2D.CircleCast(transform.position, 0.5f, Vector2.right, bombDistance),
            Physics2D.CircleCast(transform.position, 0.5f, Vector2.down, bombDistance),
            Physics2D.CircleCast(transform.position, 0.5f, Vector2.left, bombDistance),
        });

        List <CustomLineRenderer> laserLines = new List <CustomLineRenderer>
        {
            new CustomLineRenderer {
                Line      = transform.Find("lr1").GetComponent <LineRenderer>(),
                Direction = new Vector2(transform.position.x, transform.position.y + bombDistance)
            },
            new CustomLineRenderer {
                Line      = transform.Find("lr2").GetComponent <LineRenderer>(),
                Direction = new Vector2(transform.position.x + bombDistance, transform.position.y)
            },
            new CustomLineRenderer {
                Line      = transform.Find("lr3").GetComponent <LineRenderer>(),
                Direction = new Vector2(transform.position.x, transform.position.y - bombDistance)
            },
            new CustomLineRenderer {
                Line      = transform.Find("lr4").GetComponent <LineRenderer>(),
                Direction = new Vector2(transform.position.x - bombDistance, transform.position.y)
            }
        };


        for (int i = 0; i < hits.Count; i++)
        {
            RaycastHit2D       hit       = hits[i];
            CustomLineRenderer laserLine = laserLines[i];
            laserLine.Line.SetPosition(0, transform.position);

            StartCoroutine(BoomEffect(laserLine.Line));

            if (hit.collider != null)
            {
                laserLine.Line.SetPosition(1, hit.point);
                string colliderTag = hit.collider.gameObject.tag;
                if (colliderTag == "Player")
                {
                    Inventory inventory = hit.collider.gameObject.GetComponent <Inventory>();
                    if (photonView.isMine)
                    {
                        var target = hit.collider.gameObject.GetComponent <PhotonView>().owner.NickName;
                        gc.UpdateScoreboard(PhotonNetwork.player.NickName, target);
                    }
                    inventory.Kill();
                }
                else if (colliderTag == "money")
                {
                    PhotonNetwork.Destroy(hit.collider.gameObject);
                }
            }
            else
            {
                laserLine.Line.SetPosition(1, laserLine.Direction);
            }
        }
    }
 public NodeConnectionBuilder <T> SetConnectionLine(CustomLineRenderer connectionLine)
 {
     currentNode.ConnectedLine = connectionLine;
     return(this);
 }
Esempio n. 10
0
 public NodeConnection(T input, T output, CustomLineRenderer line)
 {
     InputNode     = input;
     OutputNode    = output;
     ConnectedLine = line;
 }