public static void loadShaftObject(SceneObject obj) { if (obj.GetType().Equals(typeof(ShaftObject))) { ShaftObject shObject = (ShaftObject)obj; GameObject shaft = Instantiate(prefabDictionary[obj.GetType()]); shaft.transform.position = new Vector3(shObject.position.x, shObject.position.y, shObject.position.z); shaft.transform.eulerAngles = new Vector3(shObject.rotation.x, shObject.rotation.y, shObject.rotation.z); float diameter = shObject.radius * 2.0f; shaft.transform.localScale = new Vector3(diameter, shObject.length, diameter); foreach (int id in shObject.connectedObjects) { Tuple <SceneObject, GameObject> tuple = addedSceneObjects.Find(tp => tp.Item1.id.Equals(id)); if (tuple != null) { shaft.GetComponentInChildren <Connectable>().addConnectedPart(tuple.Item2.GetComponentInChildren <Rotatable>()); } } //Set Layer for gameobject and all its children string tagLayerName = "Shaft"; SetLayerRecursively(shaft, LayerMask.NameToLayer(tagLayerName)); shaft.gameObject.tag = tagLayerName; addedSceneObjects.Add(new Tuple <SceneObject, GameObject>(obj, shaft)); } }
public void ReadInEnemyData() { Enemy = Player.currentEnemy.GetComponent <ShaftObject>(); enemyHealth = Enemy.health; enemyAttack = Enemy.attack; enemyDefense = Enemy.defense; EnemyHealthDisplay.maxValue = Enemy.health; EnemyHealthDisplay.value = Enemy.health; }
public static void addShaftObject(List <SceneObject> sceneObjects, Dictionary <GameObject, SceneObject> addedSceneObjects, GameObject obj) { if (obj.tag.Equals("Shaft")) { ShaftObject newObject = new ShaftObject(); List <Rotatable> connectedObjects = obj.GetComponentInChildren <RotatableObject>().getConnectedParts(); newObject.connectedObjects = new int[connectedObjects.Count]; for (int i = 0; i < connectedObjects.Count; i++) { if (!addedSceneObjects.ContainsKey(connectedObjects[i].getRootTransform().gameObject)) { SceneLoaderDictionary.addSceneObjectDictionary[connectedObjects[i].getRootTransform().tag].Invoke(sceneObjects, addedSceneObjects, connectedObjects[i].getRootTransform().gameObject); } newObject.connectedObjects[i] = addedSceneObjects[connectedObjects[i].getRootTransform().gameObject].id; } newObject.id = sceneObjects.Count; newObject.kind = "ShaftObject"; Vector3 objPosition = obj.transform.position; newObject.position = new Vector3Object(objPosition.x, objPosition.y, objPosition.z); Vector3 objRotation = obj.transform.eulerAngles; newObject.rotation = new Vector3Object(objRotation.x, objRotation.y, objRotation.z); newObject.radius = (obj.transform.localScale.x / 2.0f); newObject.length = obj.transform.localScale.y; sceneObjects.Add(newObject); addedSceneObjects.Add(obj, newObject); } else { Debug.Log("JsonConfigInteraction.addConeCogwheelObject: object is not tagged with 'Shaft'."); } }