public void delScreenObj(ushort key, bool isBuilding) { ScreenObj obj = isBuilding ? buildingDict[key] : propDict[key]; Destroy(obj.signObject); if (isBuilding) { buildingDict.Remove(key); } else { propDict.Remove(key); } }
public void SetPropScreen(bool isProp, ushort id, Vector3 position, float angle, string propName, List <bool> isEnabled, List <bool> isStatic, List <string> staticStringName = null) { ScreenObj obj = new ScreenObj(id, position, angle, propName, isEnabled, isStatic, staticStringName); if (isProp) { if (propDict.ContainsKey(id)) { Destroy(propDict[id].signObject); } propDict[id] = obj; } else { if (buildingDict.ContainsKey(id)) { Destroy(buildingDict[id].signObject); } buildingDict[id] = obj; } RenderingManager.instance.update(); }
private void renderGameObjects() { List <Material> materials = TextureUtils.m_screenTextureStore.Values.ToList(); foreach (KeyValuePair <ushort, ScreenObj> obj in ScreenManager.instance.propDict) { ScreenObj screenObj = obj.Value; if (screenObj.signObject != null) { continue; } else { screenObj.signObject = new GameObject(obj.Key + "animatedsign"); screenObj.signObject.transform.position = screenObj.position; screenObj.signObject.transform.Rotate(0, (screenObj.angle) + 60f, 0); PropPositioningInfo positioningInfo = PropConfig.Instance().propPositioningDict[screenObj.propName]; for (byte i = 0; i < positioningInfo.numSigns; i++) { if (screenObj.isActive[i]) { if (screenObj.isStatic[i] && !TextureUtils.m_screenTextureStore.ContainsKey(screenObj.staticImageString[i])) { continue; } GameObject screenPaneObj = new GameObject(i.ToString()); screenPaneObj.AddComponent <MeshRenderer>(); screenPaneObj.AddComponent <MeshFilter>(); screenPaneObj.transform.parent = screenObj.signObject.transform; screenPaneObj.transform.localPosition = new Vector3(positioningInfo.xPos[i], positioningInfo.yPos[i], positioningInfo.zPos[i]); screenPaneObj.transform.localScale = new Vector3(positioningInfo.xSize[i], positioningInfo.ySize[i], 1f); screenPaneObj.transform.Rotate(0, (screenObj.angle) + positioningInfo.rotations[i], 0); Material mat = screenObj.isStatic[i] ? TextureUtils.m_screenTextureStore[screenObj.staticImageString[i]] : materials[messageRandom.Next(materials.Count)]; screenPaneObj.GetComponent <Renderer>().material = mat; screenPaneObj.GetComponent <MeshFilter>().mesh = MeshUtils.CreateRectMesh(mat.mainTexture.width, mat.mainTexture.height); } } ScreenManager.instance.propDict[obj.Key].signObject = screenObj.signObject; } } foreach (KeyValuePair <ushort, ScreenObj> obj in ScreenManager.instance.buildingDict) { ScreenObj screenObj = obj.Value; if (screenObj.signObject != null) { continue; } else { screenObj.signObject = new GameObject(obj.Key + "animatedsign"); screenObj.signObject.transform.position = screenObj.position; screenObj.signObject.transform.Rotate(0, (screenObj.angle) + 60f, 0); PropPositioningInfo positioningInfo = PropConfig.Instance().propPositioningDict[screenObj.propName]; for (byte i = 0; i < positioningInfo.numSigns; i++) { if (screenObj.isActive[i]) { if (screenObj.isStatic[i] && !TextureUtils.m_screenTextureStore.ContainsKey(screenObj.staticImageString[i])) { continue; } GameObject screenPaneObj = new GameObject(i.ToString()); screenPaneObj.AddComponent <MeshRenderer>(); screenPaneObj.AddComponent <MeshFilter>(); screenPaneObj.transform.parent = screenObj.signObject.transform; screenPaneObj.transform.localPosition = new Vector3(positioningInfo.xPos[i], positioningInfo.yPos[i], positioningInfo.zPos[i]); screenPaneObj.transform.localScale = new Vector3(positioningInfo.xSize[i], positioningInfo.ySize[i], 1f); screenPaneObj.transform.Rotate(0, (screenObj.angle) + positioningInfo.rotations[i], 0); Material mat = screenObj.isStatic[i] ? TextureUtils.m_screenTextureStore[screenObj.staticImageString[i]] : materials[messageRandom.Next(materials.Count)]; screenPaneObj.GetComponent <Renderer>().material = mat; screenPaneObj.GetComponent <MeshFilter>().mesh = MeshUtils.CreateRectMesh(mat.mainTexture.width, mat.mainTexture.height); } } ScreenManager.instance.buildingDict[obj.Key].signObject = screenObj.signObject; } } }