void InstantiateShape(HecShapesCelestialBody shapeTemplate, Vector2 start) { // This is the planet's generic object HecShapesSlottable slottable = Instantiate( slottableTemplate, start, new Quaternion(), transform); // Instantiate the planet's sprite and collider holding object as a child var shape = Instantiate(shapeTemplate, slottable.transform); if (noir) { shape.MakeGray(); } // Make the planet grabbable var grabbable = slottable.gameObject.AddComponent <MouseGrabbable>(); grabbable.disableOnLoss = true; grabbable.disableOnVictory = true; grabbable._collider2D = shape.GetComponent <Collider2D>(); // Add to grabbable group grabGroup.addGrabbable(grabbable, false); }
void Start() { grabbable = GetComponent <MouseGrabbable>(); celestialBody = GetComponentInChildren <HecShapesCelestialBody>(); audioSources = GetComponents <AudioSource>(); vibration = GetComponent <Vibrate>(); if (grabbable) { var grabEvent = new UnityEvent(); grabEvent.AddListener(OnGrab); grabbable.onGrab = grabEvent; var releaseEvent = new UnityEvent(); releaseEvent.AddListener(OnRelease); grabbable.onRelease = releaseEvent; } }