Skip to content
Snippets Groups Projects
Commit d1d9dcd1 authored by Richard Marcus's avatar Richard Marcus
Browse files

refactoring, line functionality isnt back yet, but it compiles again

parent a40193cb
Branches
No related tags found
No related merge requests found
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using TMPro;
using UnityEngine; using UnityEngine;
using static CommunicationEvents; using static CommunicationEvents;
public class FactManager : MonoBehaviour public class FactManager : MonoBehaviour
{ {
public GameObject SmartMenu;
private Stack<int> NextEmptyStack = new Stack<int>();
// Start is called before the first frame update // Start is called before the first frame update
void Start() void Start()
{ {
CommunicationEvents.ToolModeChangedEvent.AddListener(OnToolModeChanged); CommunicationEvents.ToolModeChangedEvent.AddListener(OnToolModeChanged);
CommunicationEvents.TriggerEvent.AddListener(OnHit);
CommunicationEvents.RemoveFactEvent.AddListener(DeleteFact);//we also need the listener here at the moment so we can react to UI delete events
NextEmptyStack.Push(0);
}
void AddLineFact(int pid1, int pid2, int id)
{
Facts.Insert(id, new LineFact
{
Id = id,
Pid1 = pid1,
Pid2 = pid2
});
}
void AddAngleFact(int pid1, int pid2, int pid3, int id)
{
Facts.Insert(id, new AngleFact
{
Id = id,
Pid1 = pid1,
Pid2 = pid2,
Pid3 = pid3
});
}
PointFact AddPointFact(RaycastHit hit, int id)
{
Facts.Insert(id, new PointFact
{
Id = id,
Point = hit.point
});
return Facts[id] as PointFact;
}
void DeleteFact(Fact fact)
{
NextEmptyStack.Push(fact.Id);
Facts.RemoveAt(fact.Id);
} }
// Update is called once per frame // Update is called once per frame
void Update() void Update()
{ {
//Je nachdem ob erster oder der zweite Punkt angeklickt wurde behandeln //Je nachdem ob erster oder der zweite Punkt angeklickt wurde behandeln
//Wenn erster Punkt einen Point-Collider erwischt hat: //Wenn erster Punkt einen Point-Collider erwischt hat:
...@@ -27,12 +85,12 @@ void Update() ...@@ -27,12 +85,12 @@ void Update()
//LayerMask for Points //LayerMask for Points
int layerMask = 1 << LayerMask.NameToLayer("Point"); //only hit Point int layerMask = 1 << LayerMask.NameToLayer("Point"); //only hit Point
/*
//Wenn bereits der erste Punkt markiert wurde //Wenn bereits der erste Punkt markiert wurde
if (this.lineRendererActivated) //instead: bool variable.... if (this.lineRendererActivated) //instead: bool variable....
{ {
//If a second Point was Hit //If a second Point was Hit
if (Physics.Raycast(ray, out Hit, 30f, layerMask)) if (Physics.Raycast(ray, out Hit, 30f, layerMask)) //instead: another hitevent, refer to OnHit
{ {
//Event for Creating the Line //Event for Creating the Line
Vector3 point1 = this.linePositions[0]; Vector3 point1 = this.linePositions[0];
...@@ -72,7 +130,7 @@ void Update() ...@@ -72,7 +130,7 @@ void Update()
} }
} }
*/
} }
...@@ -80,12 +138,20 @@ void Update() ...@@ -80,12 +138,20 @@ void Update()
public int GetFirstEmptyID() public int GetFirstEmptyID()
{ {
for (int i = 0; i < Facts.Length; ++i) /* for (int i = 0; i < Facts.Length; ++i)
{ {
if (Facts[i] == "") if (Facts[i] == "")
return i; return i;
} }
return Facts.Length - 1; return Facts.Length - 1;*/
int id = NextEmptyStack.Pop();
if (NextEmptyStack.Count == 0)
NextEmptyStack.Push(id + 1);
return id;
} }
...@@ -96,51 +162,55 @@ public void OnToolModeChanged(ToolMode ActiveToolMode) ...@@ -96,51 +162,55 @@ public void OnToolModeChanged(ToolMode ActiveToolMode)
case ToolMode.MarkPointMode: case ToolMode.MarkPointMode:
//If MarkPointMode is activated we want to have the ability to mark the point //If MarkPointMode is activated we want to have the ability to mark the point
//everywhere, independent of already existing facts //everywhere, independent of already existing facts
foreach (GameObject GameObjectFact in GameObjectFacts) foreach (Fact fact in Facts)
{ {
GameObjectFact.GetComponentInChildren<Collider>().enabled = false; GameObject gO = fact.Representation;
gO.GetComponentInChildren<Collider>().enabled = false;
} }
break; break;
case ToolMode.CreateLineMode: case ToolMode.CreateLineMode:
//If CreateLineMode is activated we want to have the ability to select points for the Line //If CreateLineMode is activated we want to have the ability to select points for the Line
//but we don't want to have the ability to select Lines or Angles //but we don't want to have the ability to select Lines or Angles
foreach (GameObject GameObjectFact in GameObjectFacts) foreach (Fact fact in Facts)
{ {
if (GameObjectFact.layer == LayerMask.NameToLayer("Line") || GameObjectFact.layer == LayerMask.NameToLayer("Angle")) GameObject gO = fact.Representation;
if (gO.layer == LayerMask.NameToLayer("Line") || gO.layer == LayerMask.NameToLayer("Angle"))
{ {
GameObjectFact.GetComponentInChildren<Collider>().enabled = false; gO.GetComponentInChildren<Collider>().enabled = false;
} }
else if (GameObjectFact.layer == LayerMask.NameToLayer("Point")) else if (gO.layer == LayerMask.NameToLayer("Point"))
{ {
GameObjectFact.GetComponentInChildren<Collider>().enabled = true; gO.GetComponentInChildren<Collider>().enabled = true;
} }
} }
break; break;
case ToolMode.CreateAngleMode: case ToolMode.CreateAngleMode:
//If CreateAngleMode is activated we want to have the ability to select Lines for the Angle //If CreateAngleMode is activated we want to have the ability to select Lines for the Angle
//but we don't want to have the ability to select Points or Angles //but we don't want to have the ability to select Points or Angles
foreach (GameObject GameObjectFact in GameObjectFacts) foreach (Fact fact in Facts)
{ {
if (GameObjectFact.layer == LayerMask.NameToLayer("Point") || GameObjectFact.layer == LayerMask.NameToLayer("Angle")) GameObject gO = fact.Representation;
if (gO.layer == LayerMask.NameToLayer("Point") || gO.layer == LayerMask.NameToLayer("Angle"))
{ {
GameObjectFact.GetComponentInChildren<Collider>().enabled = false; gO.GetComponentInChildren<Collider>().enabled = false;
} }
else if (GameObjectFact.layer == LayerMask.NameToLayer("Line")) else if (gO.layer == LayerMask.NameToLayer("Line"))
{ {
GameObjectFact.GetComponentInChildren<Collider>().enabled = true; gO.GetComponentInChildren<Collider>().enabled = true;
} }
} }
break; break;
case ToolMode.DeleteMode: case ToolMode.DeleteMode:
//If DeleteMode is activated we want to have the ability to delete every Fact //If DeleteMode is activated we want to have the ability to delete every Fact
//independent of the concrete type of fact //independent of the concrete type of fact
foreach (GameObject GameObjectFact in GameObjectFacts) foreach (Fact fact in Facts)
{ {
GameObjectFact.GetComponentInChildren<Collider>().enabled = true; GameObject gO = fact.Representation;
gO.GetComponentInChildren<Collider>().enabled = true;
} }
break; break;
case ToolMode.ExtraMode: case ToolMode.ExtraMode:
foreach (GameObject GameObjectFact in GameObjectFacts) foreach (Fact fact in Facts)
{ {
} }
...@@ -168,14 +238,14 @@ public void OnHit(RaycastHit hit) ...@@ -168,14 +238,14 @@ public void OnHit(RaycastHit hit)
{ {
char letter = hit.transform.gameObject.GetComponentInChildren<TextMeshPro>().text.ToCharArray()[0]; char letter = hit.transform.gameObject.GetComponentInChildren<TextMeshPro>().text.ToCharArray()[0];
int id = letter - 65; int id = letter - 65;
CommunicationEvents.RemoveEvent.Invoke(id); CommunicationEvents.RemoveFactEvent.Invoke(Facts[id]);
} }
} }
else else
{ {
PointFact fact = AddPointFact(hit, GetFirstEmptyID());
CommunicationEvents.AddPointEvent.Invoke(hit, GetFirstEmptyID()); CommunicationEvents.AddFactEvent.Invoke(fact);
} }
} }
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
public static class CommunicationEvents public static class CommunicationEvents
{ {
public class PointEvent : UnityEvent<RaycastHit,int> /* public class PointEvent : UnityEvent<RaycastHit,int>
{ {
} }
...@@ -15,15 +15,24 @@ public class LineEvent : UnityEvent<int, int, int> { ...@@ -15,15 +15,24 @@ public class LineEvent : UnityEvent<int, int, int> {
} }
public class FactEvent : UnityEvent<int>
{
}*/
public class HitEvent : UnityEvent<RaycastHit> public class HitEvent : UnityEvent<RaycastHit>
{ {
} }
public class FactEvent : UnityEvent<int> public class FactEvent : UnityEvent<Fact>
{ {
} }
public class MouseOverFactEvent : UnityEvent<Transform> public class MouseOverFactEvent : UnityEvent<Transform>
{ {
...@@ -33,16 +42,21 @@ public class ToolModeEvent : UnityEvent<ToolMode> { ...@@ -33,16 +42,21 @@ public class ToolModeEvent : UnityEvent<ToolMode> {
} }
public static HitEvent TriggerEvent = new HitEvent(); public static HitEvent TriggerEvent = new HitEvent();
public static MouseOverFactEvent HighlightEvent = new MouseOverFactEvent();
public static MouseOverFactEvent EndHighlightEvent = new MouseOverFactEvent();
public static ToolModeEvent ToolModeChangedEvent = new ToolModeEvent(); public static ToolModeEvent ToolModeChangedEvent = new ToolModeEvent();
public static PointEvent AddPointEvent = new PointEvent(); /*
public static LineEvent AddLineEvent = new LineEvent(); public static FactEvent AddPointEvent = new FactEvent();
public static FactEvent RemoveEvent = new FactEvent(); public static FactEvent AddLineEvent = new FactEvent();
public static FactEvent AddAngleEvent = new FactEvent();
*/
public static FactEvent AddFactEvent = new FactEvent();
public static FactEvent RemoveFactEvent = new FactEvent();
public static ToolMode ActiveToolMode { get; set; } public static ToolMode ActiveToolMode { get; set; }
public static List<Fact> Facts = new List<Fact>(); public static List<Fact> Facts = new List<Fact>();
// public static MouseOverFactEvent HighlightEvent = new MouseOverFactEvent();
//public static MouseOverFactEvent EndHighlightEvent = new MouseOverFactEvent();
} }
...@@ -6,8 +6,22 @@ public class Fact ...@@ -6,8 +6,22 @@ public class Fact
public GameObject Representation; public GameObject Representation;
} }
//I am not sure if we ever need to attach these to an object, so one script for all for now...
public class PointFact : Fact public class PointFact : Fact
{ {
public Vector3 Point; public Vector3 Point;
public Vector3 Normal;
}
public class LineFact : Fact
{
public int Pid1, Pid2;
}
public class AngleFact : Fact
{
public int Pid1, Pid2, Pid3;
}
public class OnLineFact : Fact
{
public int Pid1, Pid2, Pid3;
} }
...@@ -4,16 +4,8 @@ ...@@ -4,16 +4,8 @@
public class FactObject : MonoBehaviour public class FactObject : MonoBehaviour
{ {
//object that can represent arbitrary facts
//used to access entry in global Fact Collection
public int Id; public int Id;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
} }
...@@ -9,40 +9,48 @@ public class FactSpawner : MonoBehaviour ...@@ -9,40 +9,48 @@ public class FactSpawner : MonoBehaviour
{ {
private GameObject FactRepresentation; private GameObject FactRepresentation;
//Variables for highlighting Facts where the cursor moves over
public Material defaultMaterial;
public Material highlightMaterial;
public GameObject SmartMenu;
void Start() void Start()
{ {
CommunicationEvents.HighlightEvent.AddListener(OnMouseOverFact);
CommunicationEvents.EndHighlightEvent.AddListener(OnMouseOverFactEnd);
CommunicationEvents.TriggerEvent.AddListener(OnHit);
CommunicationEvents.AddPointEvent.AddListener(SpawnPoint); AddFactEvent.AddListener(FactAction);
CommunicationEvents.AddLineEvent.AddListener(SpawnLine); RemoveFactEvent.AddListener(DeleteObject);
CommunicationEvents.RemoveEvent.AddListener(DeletePoint);
//Default FactRepresenation = Sphere-Prefab for Points //Default FactRepresenation = Sphere-Prefab for Points
this.FactRepresentation = (GameObject) Resources.Load("Prefabs/Sphere", typeof(GameObject)); this.FactRepresentation = (GameObject) Resources.Load("Prefabs/Sphere", typeof(GameObject));
} }
public void FactAction(Fact fact)
{
switch (fact)
{
case PointFact pointFact:
SpawnPoint(pointFact);
break;
case LineFact lineFact:
SpawnLine(lineFact);
break;
}
}
public void SpawnPoint(RaycastHit hit, int id)
public void SpawnPoint(PointFact fact)
{ {
PointFact pointFact = fact;
this.FactRepresentation = (GameObject)Resources.Load("Prefabs/Sphere", typeof(GameObject)); this.FactRepresentation = (GameObject)Resources.Load("Prefabs/Sphere", typeof(GameObject));
Debug.Log(id);
GameObject point = GameObject.Instantiate(FactRepresentation); GameObject point = GameObject.Instantiate(FactRepresentation);
point.transform.position = hit.point; point.transform.position = pointFact.Point;
point.transform.up = hit.normal; point.transform.up = pointFact.Normal;
string letter = ((Char)(64+id+1)).ToString(); string letter = ((Char)(64+fact.Id+1)).ToString();
point.GetComponentInChildren<TextMeshPro>().text = letter; point.GetComponentInChildren<TextMeshPro>().text = letter;
point.GetComponent<FactObject>().Id = id; point.GetComponent<FactObject>().Id = fact.Id;
pointFact.Representation = point;
//If a new Point was spawned -> We are in MarkPointMode -> Then we want the collider to be disabled //If a new Point was spawned -> We are in MarkPointMode -> Then we want the collider to be disabled
//Hint: Thats why by now, if we mark a Point in an other mode than MarkPointMode, the //Hint: Thats why by now, if we mark a Point in an other mode than MarkPointMode, the
//Collider will be set disabled //Collider will be set disabled
...@@ -52,16 +60,19 @@ public void SpawnPoint(RaycastHit hit, int id) ...@@ -52,16 +60,19 @@ public void SpawnPoint(RaycastHit hit, int id)
} }
public void DeletePoint(int id) public void DeleteObject(Fact fact)
{ {
GameObject point = Facts[id].Representation; Debug.Log("delete obj");
GameObject point = fact.Representation;
GameObject.Destroy(point); GameObject.Destroy(point);
} }
public void SpawnLine(int pid1, int pid2, int id) { public void SpawnLine(LineFact lineFact) {
Vector3 point1 = (Facts[pid1] as PointFact).Point; Vector3 point1 = (Facts[lineFact.Pid1] as PointFact).Point;
Vector3 point2 = (Facts[lineFact.Pid2] as PointFact).Point;
//Change FactRepresentation to Line //Change FactRepresentation to Line
this.FactRepresentation = (GameObject)Resources.Load("Prefabs/Line2", typeof(GameObject)); this.FactRepresentation = (GameObject)Resources.Load("Prefabs/Line2", typeof(GameObject));
GameObject line = GameObject.Instantiate(FactRepresentation); GameObject line = GameObject.Instantiate(FactRepresentation);
...@@ -76,14 +87,14 @@ public void SpawnLine(int pid1, int pid2, int id) { ...@@ -76,14 +87,14 @@ public void SpawnLine(int pid1, int pid2, int id) {
line.transform.localScale = v3T; line.transform.localScale = v3T;
line.transform.rotation = Quaternion.FromToRotation(Vector3.up, point2 - point1); line.transform.rotation = Quaternion.FromToRotation(Vector3.up, point2 - point1);
string letter = ((Char)(64 + id + 1)).ToString(); string letter = ((Char)(64 + lineFact.Id + 1)).ToString();
line.GetComponentInChildren<TextMeshPro>().text = letter; line.GetComponentInChildren<TextMeshPro>().text = letter;
line.GetComponent<FactObject>().Id = id; line.GetComponent<FactObject>().Id = lineFact.Id;
//If a new Line was spawned -> We are in CreateLineMode -> Then we want the collider to be disabled //If a new Line was spawned -> We are in CreateLineMode -> Then we want the collider to be disabled
if (CommunicationEvents.ActiveToolMode != ToolMode.ExtraMode) if (CommunicationEvents.ActiveToolMode != ToolMode.ExtraMode)
line.GetComponentInChildren<BoxCollider>().enabled = false; line.GetComponentInChildren<BoxCollider>().enabled = false;
Facts[id] = letter; lineFact.Representation = line;
GameObjectFacts[id] = line;
} }
......
...@@ -27,12 +27,12 @@ void Start() ...@@ -27,12 +27,12 @@ void Start()
mmtServerProcess = Process.Start(mmtServerProcessInfo); mmtServerProcess = Process.Start(mmtServerProcessInfo);
*/ */
CommunicationEvents.AddPointEvent.AddListener(AddFactToMMT); // CommunicationEvents.AddPointEvent.AddListener(AddFactToMMT);
CommunicationEvents.RemoveEvent.AddListener(RemoveFactFromMMT); // CommunicationEvents.RemoveEvent.AddListener(RemoveFactFromMMT);
} }
/*
void AddFactToMMT(RaycastHit hit, int id ) void AddFactToMMT(RaycastHit hit, int id )
{ {
//send new fact to MMT //send new fact to MMT
...@@ -43,6 +43,6 @@ void RemoveFactFromMMT( int id) ...@@ -43,6 +43,6 @@ void RemoveFactFromMMT( int id)
{ {
UnityEngine.Debug.Log("remove fact"+ id); UnityEngine.Debug.Log("remove fact"+ id);
} }
*/
} }
...@@ -9,6 +9,9 @@ public class ShinyThings : MonoBehaviour ...@@ -9,6 +9,9 @@ public class ShinyThings : MonoBehaviour
//Attributes for Highlighting of Facts when Mouse-Over //Attributes for Highlighting of Facts when Mouse-Over
private string selectableTag = "Selectable"; private string selectableTag = "Selectable";
private Transform lastFactSelection; private Transform lastFactSelection;
public Material defaultMaterial;
public Material highlightMaterial;
//Attributes for simulating the drawing of a line //Attributes for simulating the drawing of a line
public LineRenderer lineRenderer; public LineRenderer lineRenderer;
...@@ -20,6 +23,8 @@ public class ShinyThings : MonoBehaviour ...@@ -20,6 +23,8 @@ public class ShinyThings : MonoBehaviour
void Start() void Start()
{ {
if(Cursor == null)Cursor = GetComponent<WorldCursor>(); if(Cursor == null)Cursor = GetComponent<WorldCursor>();
// CommunicationEvents.HighlightEvent.AddListener(OnMouseOverFact);
// CommunicationEvents.EndHighlightEvent.AddListener(OnMouseOverFactEnd);
} }
// Update is called once per frame // Update is called once per frame
...@@ -30,13 +35,16 @@ void Update() ...@@ -30,13 +35,16 @@ void Update()
RaycastHit Hit = Cursor.Hit; RaycastHit Hit = Cursor.Hit;
if (Hit.transform != null)
{
Transform selection = Hit.transform; Transform selection = Hit.transform;
//Set the last Fact unselected //Set the last Fact unselected
if (this.lastFactSelection != null) if (this.lastFactSelection != null)
{ {
//Invoke the EndHighlightEvent that will be handled in FactSpawner //Invoke the EndHighlightEvent that will be handled in FactSpawner
CommunicationEvents.EndHighlightEvent.Invoke(this.lastFactSelection); // CommunicationEvents.EndHighlightEvent.Invoke(this.lastFactSelection);
OnMouseOverFactEnd(lastFactSelection);
this.lastFactSelection = null; this.lastFactSelection = null;
} }
...@@ -45,11 +53,16 @@ void Update() ...@@ -45,11 +53,16 @@ void Update()
{ {
//Invoke the HighlightEvent that will be handled in FactSpawner //Invoke the HighlightEvent that will be handled in FactSpawner
this.lastFactSelection = selection; this.lastFactSelection = selection;
CommunicationEvents.HighlightEvent.Invoke(selection); //CommunicationEvents.HighlightEvent.Invoke(selection);
OnMouseOverFact(lastFactSelection);
} }
//SELECTION-HIGHLIGHTING-PART-END //SELECTION-HIGHLIGHTING-PART-END
} }
}
public void OnMouseOverFactEnd(Transform selection) public void OnMouseOverFactEnd(Transform selection)
{ {
Renderer selectionRenderer; Renderer selectionRenderer;
...@@ -90,7 +103,7 @@ void DeactivateLineRenderer() ...@@ -90,7 +103,7 @@ void DeactivateLineRenderer()
//Updates the second-point of the Line when First Point was selected in LineMode //Updates the second-point of the Line when First Point was selected in LineMode
void UpdateLineRenderer(Vector3 currentPosition) void UpdateLineRenderer(Vector3 currentPosition)
{ {
if (this.ActiveToolMode == ToolMode.CreateLineMode) // if (this.ActiveToolMode == ToolMode.CreateLineMode)
{ {
if (this.lineRendererActivated) if (this.lineRendererActivated)
{ {
......
...@@ -7,7 +7,8 @@ public class SmartMenu : MonoBehaviour ...@@ -7,7 +7,8 @@ public class SmartMenu : MonoBehaviour
public void DestroyObject() public void DestroyObject()
{ {
CommunicationEvents.RemoveEvent.Invoke(transform.parent.GetComponent<FactObject>().Id);
CommunicationEvents.RemoveFactEvent.Invoke(CommunicationEvents.Facts[transform.parent.GetComponent<FactObject>().Id]);
} }
......
...@@ -61,8 +61,10 @@ void Update() ...@@ -61,8 +61,10 @@ void Update()
//Check if left Mouse-Button was pressed and handle it //Check if left Mouse-Button was pressed and handle it
void CheckMouseButtons(Ray ray) void CheckMouseButtons(Ray ray)
{ {
if (Input.GetMouseButtonDown(0)) if (Input.GetMouseButtonDown(0))
{ {
if (EventSystem.current.IsPointerOverGameObject()) return; //this prevents rays from shooting through ui
CommunicationEvents.TriggerEvent.Invoke(Hit); CommunicationEvents.TriggerEvent.Invoke(Hit);
......
...@@ -1133,10 +1133,6 @@ MonoBehaviour: ...@@ -1133,10 +1133,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5c41d44ed1851e14089a3b6e37cba740, type: 3} m_Script: {fileID: 11500000, guid: 5c41d44ed1851e14089a3b6e37cba740, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
defaultMaterial: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
highlightMaterial: {fileID: 2100000, guid: c7daa82e15f0cf04d92d0f41ce84f9df, type: 2}
SmartMenu: {fileID: 5601740127768851631, guid: e693bf633c633d243b0254d117ec3893,
type: 3}
--- !u!120 &1661088668 --- !u!120 &1661088668
LineRenderer: LineRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -1244,6 +1240,10 @@ MonoBehaviour: ...@@ -1244,6 +1240,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 1ed2627334ef0e44ebe98f8b9ce4bc25, type: 3} m_Script: {fileID: 11500000, guid: 1ed2627334ef0e44ebe98f8b9ce4bc25, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
Cursor: {fileID: 1661088666}
defaultMaterial: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
highlightMaterial: {fileID: 2100000, guid: c7daa82e15f0cf04d92d0f41ce84f9df, type: 2}
lineRenderer: {fileID: 1661088668}
--- !u!114 &1661088670 --- !u!114 &1661088670
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -1256,6 +1256,8 @@ MonoBehaviour: ...@@ -1256,6 +1256,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c75823b1712c4914b987f0e1ba8a5cba, type: 3} m_Script: {fileID: 11500000, guid: c75823b1712c4914b987f0e1ba8a5cba, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
SmartMenu: {fileID: 5601740127768851631, guid: e693bf633c633d243b0254d117ec3893,
type: 3}
--- !u!1 &1675643434 --- !u!1 &1675643434
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment