コード例 #1
0
    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");
            }
        }
    }
コード例 #2
0
    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();
        }
    }
コード例 #3
0
    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();
        }
    }
コード例 #4
0
 void QuerySetObjectsLoaded()
 {
     foreach (GameObject tObj in GemObjectList)
     {
         GemObject objectScript = tObj.GetComponent <GemObject> ();
         objectScript._State = GemObject.eState.Loaded;
     }
 }
コード例 #5
0
ファイル: Player.cs プロジェクト: TopicT/ai-planner-samples
        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);
                    }
                }
            }
        }
コード例 #6
0
    public GemObject.eColorType GetGemRefColorType()
    {
        if (GemRef != null)
        {
            GemObject objectScript = GemRef.GetComponent <GemObject> ();
            return(objectScript.ColorType);
        }

        return(GemObject.eColorType.Black);       //not set
    }
コード例 #7
0
 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);
 }
コード例 #8
0
    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);
        }
    }
コード例 #9
0
 public static void UnregisterObject(GemObject obj)
 {
     _gemObjects.Remove(obj);
     _transformsToWatch.Remove(obj.transform);
     _meshObjectsNeedRebuilding = true;
 }