public void PlaceBlockOnPlane(Pose pose) { GameObject go = Instantiate(block[index], pose.position, Quaternion.identity); float blockSize = go.GetComponent <MeshRenderer>().bounds.size.x; if (worldZeroBlock == null) { worldZeroBlock = go; ARAnchor anchor = ARManager.arAnchorManager.AddAnchor(pose); PlaceableObject po = worldZeroBlock.AddComponent <PlaceableObject>(); po.Init(anchor); } else { go.transform.parent = worldZeroBlock.transform; } if (index == (int)eBlocks.GRASS) { RaycastHit topHit; Ray ray = new Ray(go.transform.position, transform.up); if (Physics.Raycast(ray, out topHit, blockSize / 4)) { //ARDebug.Log(topHit.collider.gameObject.name, 5); } if (Random.Range(0, 4) == 0) { int flowerIndex = Random.Range(0, flowers.Length); Vector3 pos = go.transform.position; pos.y += blockSize; GameObject flower = Instantiate(flowers[flowerIndex], pos, Quaternion.identity); go.GetComponent <Block>().foilage = flower; //ARDebug.Log("Spawned flower", 5); flower.transform.parent = go.transform; } } spawnedBlocks.AddLast(go); }