private object SpawnRect(List <object> parameters) { int width = (int)parameters[0]; int height = (int)parameters[1]; int x = (int)parameters[2]; int y = (int)parameters[3]; int z = 0; object prototype = parameters[4]; string objectColor = (string)parameters[5]; GameObject rectInstance = Instantiate(rectPrefab); rectInstance.transform.position = new Vector3(x, y, z); rectInstance.transform.localScale = new Vector3(width, height, 10); if (ColorUtility.TryParseHtmlString(objectColor, out Color color)) { rectInstance.GetComponent <MeshRenderer>().material.color = color; } MegaScryptGameObject obj = new MegaScryptGameObject(rectInstance); obj.Declare("prototype", prototype); _gameObjects.Add(obj); return(obj); }
private object SpawnCircle(List <object> parameters) { int radius = (int)parameters[0]; int x = (int)parameters[1]; int y = (int)parameters[2]; int z = 0; object prototype = parameters[3]; string objectColor = (string)parameters[4]; GameObject circleInstance = Instantiate(circlePrefab); circleInstance.transform.position = new Vector3(x, y, z); circleInstance.transform.localScale = Vector3.one * radius; circleInstance.GetComponent <CollisionNotifier>().SetController(this); if (ColorUtility.TryParseHtmlString(objectColor, out Color color)) { circleInstance.GetComponent <MeshRenderer>().material.color = color; } MegaScryptGameObject obj = new MegaScryptGameObject(circleInstance); obj.Declare("prototype", prototype); _gameObjects.Add(obj); return(obj); }
private object DestroyObject(List <object> paramaters) { MegaScryptGameObject megObj = (MegaScryptGameObject)paramaters[0]; GameObject targetObject = megObj.Target; for (int i = 0; i < _gameObjects.Count; i++) { if (targetObject == _gameObjects[i].Target) { Destroy(targetObject); _gameObjects.RemoveAt(i); break; } } return(null); }
public void CollisionTrigger(GameObject a, GameObject b) { MegaScryptGameObject gameObjectA = null; MegaScryptGameObject gameObjectB = null; for (int i = 0; i < _gameObjects.Count; i++) { if (_gameObjects[i].Target == a) { gameObjectA = _gameObjects[i]; } else if (_gameObjects[i].Target == b) { gameObjectB = _gameObjects[i]; } } _parameters.Clear(); _parameters.Add(gameObjectA); _parameters.Add(gameObjectB); _parameters.Add(Time.deltaTime); _machine.TryInvoke("OnCollision", _parameters); }