Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[+] Create Node & Change Color of selected Node #21

Merged
merged 6 commits into from
Jul 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions editor/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Unity
*.cginc text
*.cs text diff=csharp
*.shader text

# Unity YAML
*.mat merge=unityyamlmerge eol=lf
*.anim merge=unityyamlmerge eol=lf
*.unity merge=unityyamlmerge eol=lf
*.prefab merge=unityyamlmerge eol=lf
*.asset merge=unityyamlmerge eol=lf
*.meta merge=unityyamlmerge eol=lf
*.controller merge=unityyamlmerge eol=lf

# "physic" for 3D but "physics" for 2D
*.physicMaterial2D merge=unityyamlmerge eol=lf
*.physicMaterial merge=unityyamlmerge eol=lf
*.physicsMaterial2D merge=unityyamlmerge eol=lf
*.physicsMaterial merge=unityyamlmerge eol=lf

# Using Git LFS
# Add diff=lfs merge=lfs to the binary files

# Unity LFS
*.cubemap binary
*.unitypackage binary

# 3D models
*.3dm binary
*.3ds binary
*.blend binary
*.c4d binary
*.collada binary
*.dae binary
*.dxf binary
*.FBX binary
*.fbx binary
*.jas binary
*.lws binary
*.lxo binary
*.ma binary
*.max binary
*.mb binary
*.obj binary
*.ply binary
*.skp binary
*.stl binary
*.ztl binary

# Audio
*.aif binary
*.aiff binary
*.it binary
*.mod binary
*.mp3 binary
*.ogg binary
*.s3m binary
*.wav binary
*.xm binary

# Video
*.asf binary
*.avi binary
*.flv binary
*.mov binary
*.mp4 binary
*.mpeg binary
*.mpg binary
*.ogv binary
*.wmv binary

# Images
*.bmp binary
*.exr binary
*.gif binary
*.hdr binary
*.iff binary
*.jpeg binary
*.jpg binary
*.pict binary
*.png binary
*.psd binary
*.tga binary
*.tif binary
*.tiff binary
*.webp binary

# Compressed Archive
*.7z binary
*.bz2 binary
*.gz binary
*.rar binary
*.tar binary
*.zip binary

# Compiled Dynamic Library
*.dll binary
*.pdb binary
*.so binary

# Fonts
*.otf binary
*.ttf binary

# Executable/Installer
*.apk binary
*.exe binary

# Documents
*.pdf binary

# ETC
*.a binary
*.rns binary
*.reason binary

# Collapse Unity-generated files on GitHub
*.asset linguist-generated
*.mat linguist-generated
*.meta linguist-generated
*.prefab linguist-generated
*.unity linguist-generated

# Spine export file for Unity
*.skel.bytes binary
38 changes: 38 additions & 0 deletions editor/Assets/ChangeColor.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChangeColor : MonoBehaviour
{

public MeshRenderer mesh;
public Color SelectColor;
public Color DeselectColor;

private void Awake() {
mesh = gameObject.GetComponent<MeshRenderer>();
if((Vector4)DeselectColor == Vector4.zero)
{
DeselectColor = mesh.material.color;
}
mesh.material.color = DeselectColor;
}
private void OnEnable() {
ClickNode.instance.OnNodeSelected += ChangeColorOnSelected;
ClickNode.instance.OnNodeDeselected += ChangeColorOnDeselected;
}

void ChangeColorOnSelected()
{
if(ClickNode.instance.node == this.gameObject)
mesh.material.color = SelectColor;
else
mesh.material.color = DeselectColor;
}

void ChangeColorOnDeselected()
{
if(ClickNode.instance.node != this.gameObject)
mesh.material.color = DeselectColor;
}
}
11 changes: 11 additions & 0 deletions editor/Assets/ChangeColor.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 42 additions & 0 deletions editor/Assets/ClickNode.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
using System.Collections;
using System;
using System.Collections.Generic;
using UnityEngine;

public class ClickNode : MonoBehaviour
{
public static ClickNode instance;
public Action OnNodeSelected;
public Action OnNodeDeselected;
public GameObject node;

private void Awake()
{
instance = this;
}

// Update is called once per frame
void Update()
{

if (Input.GetMouseButtonDown(0)) {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

if (Physics.Raycast(ray, out hit)) {
if (hit.transform.name != null)
{
node = hit.transform.gameObject;
OnNodeSelected?.Invoke();
}

}
else
{
node = null;
OnNodeDeselected?.Invoke();
}
}
}

}
11 changes: 11 additions & 0 deletions editor/Assets/ClickNode.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 29 additions & 0 deletions editor/Assets/Cube.prefab

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions editor/Assets/DragMouseOrbit.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ public class DragMouseOrbit : MonoBehaviour
float x = 0.0f;
float y = 0.0f;

public ClickNode clickNode;

private void OnEnable() {
clickNode = ClickNode.instance;
}

// Use this for initialization
void Start()
{
Expand Down Expand Up @@ -61,6 +67,7 @@ async void LateUpdate()
var pIndex = Random.Range(0, gm.GetParts().Count);
var nIndex = Random.Range(0, gm.GetParts()[pIndex].Count);
var target = gm.GetParts()[pIndex][nIndex];
target = ClickNode.instance.node.GetComponent<NodeLink>().nodeLink;
node.position = target.position + new Vector3(
Random.Range(-1f, 1f),
Random.Range(-1f, 1f),
Expand Down
2 changes: 2 additions & 0 deletions editor/Assets/GraphManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ private void CreateGameObjectsFromNodes(List<Node> nodes, int offset, Volume vol
var position = (node.position + new Vector3(0, 0, offset)) * 2;
position.y = -position.y;
node.gameObject = Instantiate(cubeNode, position, Quaternion.identity);
node.gameObject.GetComponent<NodeLink>().nodeLink = node;
volume.Add(node.gameObject);
var textMesh = node.gameObject.GetComponentInChildren<TextMesh>();
textMesh.text = node.text;
Expand All @@ -75,6 +76,7 @@ public async Task LinkNode(Node node, Node target, List<Node> graph)


node.gameObject = Instantiate(cubeNode);
node.gameObject.GetComponent<NodeLink>().nodeLink = node;
var textMesh = node.gameObject.GetComponentInChildren<TextMesh>();
textMesh.text = node.text;

Expand Down
Loading