private void LoadGemObjects() { for (int t = 0; t < objectPoolSize; t++) { GameObject _sfObj = Instantiate(Resources.Load("Prefabs/GemObject", typeof(GameObject))) as GameObject; if (_sfObj != null) { if (GemObjectContainer != null) { _sfObj.transform.parent = GemObjectContainer.transform; } _sfObj.name = "gemObj" + t.ToString(); //default storage location _sfObj.transform.position = new Vector2(StoragePosition.transform.position.x, StoragePosition.transform.position.y); GemObject objectScript = _sfObj.GetComponent <GemObject> (); objectScript.ID = t; GemObjectList.Add(_sfObj); } else { Debug.Log("Couldn't load hex object prefab"); } } }
private void FillEmptyDiagnostic() { int count = GemObjectList.Count; Debug.Log("FillEmptyDiagnostic"); SquareGridManager.Instance.SetScanSetting(0); GameObject go = SquareGridManager.Instance.QueryScanNextSquare(); while (go != null) { SquareGridObject objectScript = go.GetComponent <SquareGridObject> (); if (objectScript.NoGemAttached()) { GameObject gem = GemManager.Instance.QueryGetAvailableObject(); if (gem != null) { int colorType = (int)Random.Range(0, count); GemObject gemScript = gem.GetComponent <GemObject> (); gemScript.SetGemSprite(GemObjectList[colorType], (GemObject.eColorType)colorType); objectScript.AttachGem(gem); } } go = SquareGridManager.Instance.QueryScanNextSquare(); } }
private void FillPreconfigDiagnostic() { int count = GemObjectList.Count; Debug.Log("FillEmptyDiagnostic"); HexManager.Instance.SetScanSetting(0); GameObject go = HexManager.Instance.QueryScanNextHex(); int index = 0; while (go != null) { HexObject objectScript = go.GetComponent <HexObject> (); if (objectScript._Type == HexObject.eType.Main && objectScript.NoGemAttached()) { GameObject gem = GemManager.Instance.QueryGetAvailableObject(); if (gem != null) { int colorType = PreConfigBoard3[index++]; GemObject gemScript = gem.GetComponent <GemObject> (); gemScript.SetGemSprite(GemObjectList[colorType], (GemObject.eColorType)colorType); objectScript.AttachGem(gem); } } go = HexManager.Instance.QueryScanNextHex(); } }
void QuerySetObjectsLoaded() { foreach (GameObject tObj in GemObjectList) { GemObject objectScript = tObj.GetComponent <GemObject> (); objectScript._State = GemObject.eState.Loaded; } }
protected void Update() { #if PLANNER_ACTIONS_GENERATED if (Grid.Goals[0].GemCount <= 0) { return; } #endif if (m_controller == ControllerType.Player) { if (m_SelectedGem != null) { if (Input.GetMouseButton(0)) { m_SelectedGem.Highlight(true); } else if (Input.GetMouseButtonUp(0)) { var mousePosition = Input.mousePosition; mousePosition.z = Camera.main.transform.position.y; var targetPos = Camera.main.ScreenToWorldPoint(mousePosition); Grid.TryToSwapSelectedCell(m_SelectedGem, targetPos); m_SelectedGem = null; } } Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { var hitGameObject = hit.collider.gameObject; GemObject gem = hitGameObject.GetComponent <GemObject>(); if (Input.GetMouseButton(0)) { if (m_SelectedGem == null && !gem.Destroyed) { m_SelectedGem = gem; var gemPos = m_SelectedGem.transform.position; m_SelectedGem.transform.position = new Vector3(gemPos.x, 0.25f, gemPos.z); } } else { if (m_SelectedGem != null) { Grid.ResetGemPosition(m_SelectedGem); } m_SelectedGem = null; gem.Highlight(true); } } } }
public GemObject.eColorType GetGemRefColorType() { if (GemRef != null) { GemObject objectScript = GemRef.GetComponent <GemObject> (); return(objectScript.ColorType); } return(GemObject.eColorType.Black); //not set }
public GameObject QueryGetAvailableObject() { foreach (GameObject tObj in GemObjectList) { GemObject objectScript = tObj.GetComponent <GemObject> (); if (objectScript._State == GemObject.eState.Loaded) { objectScript._State = GemObject.eState.Prepare; return(tObj); } } return(null); }
private void SetMaterialParameters() { for (int i = 0; i < _gemObjects.Count; i++) { GemObject obj = _gemObjects[i]; MeshRenderer renderer = obj.GetComponent <MeshRenderer>(); Material material = renderer.sharedMaterial; material.SetBuffer("_MeshObjects", _meshObjectBuffer); material.SetBuffer("_Vertices", _vertexBuffer); material.SetBuffer("_Indices", _indexBuffer); MaterialPropertyBlock block = new MaterialPropertyBlock(); renderer.GetPropertyBlock(block); block.SetInt("_MeshIndex", i); renderer.SetPropertyBlock(block); } }
public static void UnregisterObject(GemObject obj) { _gemObjects.Remove(obj); _transformsToWatch.Remove(obj.transform); _meshObjectsNeedRebuilding = true; }