public GameObject CreateNodeGameObject(Node node) { if (_materialCache == null) { _materialCache = FindObjectOfType <MaterialCache>(); } if (node.nodeClass == null) { return(CreateDefaultNode(node.Position, Quaternion.Euler(node.Rotation))); } var material = _materialCache.GetByTexturePath(node.nodeClass.TexturePath); var gameObject = node.nodeClass.Shape == null ? GameObject.CreatePrimitive(c_defaultNodeType) : GameObject.CreatePrimitive(node.nodeClass.Shape.Value); gameObject.transform.localScale = Vector3.one * (node.nodeClass.Scale ?? 1); gameObject.transform.position = node.Position; gameObject.transform.rotation = Quaternion.Euler(node.Rotation); gameObject.tag = Constants.PhysicalNodeTag; var renderer = gameObject.GetComponent <Renderer>(); renderer.material = material; Instantiate(nodeCanvasPrefab, gameObject.transform); return(gameObject); }
public void Start() { _materialCache = FindObjectOfType <MaterialCache>(); }