//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; }
//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(); } }
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); }
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; }
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; }
//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(); }
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); }
public NodeConnection(T input, T output, CustomLineRenderer line) { InputNode = input; OutputNode = output; ConnectedLine = line; }