public void setMine(GameObject obj) { float distance = Vector2.Distance(transform.position, obj.transform.position); if (distance < 1.75f && mineRoad == null) { MineScript mineScript = obj.GetComponent(typeof(MineScript)) as MineScript; mine = mineScript; GameObject newMineRoad = Instantiate(road, transform.position, Quaternion.identity); Vector2 rotationVector = new Vector2( transform.position.x - obj.transform.position.x, transform.position.y - obj.transform.position.y ); newMineRoad.transform.localScale += new Vector3(0, distance, 1); newMineRoad.transform.up = rotationVector; Vector3 roadPos = new Vector3( (obj.transform.position.x + transform.position.x) / 2, (obj.transform.position.y + transform.position.y) / 2, 15f ); newMineRoad.transform.position = roadPos; MinaralMineRoad roadScript = newMineRoad.GetComponent(typeof(MinaralMineRoad)) as MinaralMineRoad; // Set Road variables roadScript.setTopObject(obj); // top object the builded object roadScript.setBottomObject(gameObject); // bottom object platform roadScript.connetedToMine(); mineRoad = roadScript; beingDig = true; // Set mine's mineRoad variable //mine.setMineRoad(roadScript); } }
void OnEnable() { if (_roadScript == null) { _roadScript = FindObjectOfType <RoadScript>(); } _randomSpeedMultiplier = Random.Range(_randomSpeedMultiplierMin, _randomSpeedMultiplierMax); }
private void GenerateMiner() { GameObject newMiner = Instantiate(miner, getTopObject().transform.position, Quaternion.identity); MinerScript minerSc = newMiner.GetComponent(typeof(MinerScript)) as MinerScript; minerSc.setDirection(getBottomObject().transform.position); RoadScript roadSc = GetComponent(typeof(RoadScript)) as RoadScript; minerSc.setRoadMovingOn(roadSc); }
public void createWorker() { GameObject activeObj = manager.getActiveObject(); IcanHaveRoad haveRoad = activeObj.GetComponent(typeof(IcanHaveRoad)) as IcanHaveRoad; RoadScript roadScript = haveRoad.getRoad(); GameObject newWorker = Instantiate(Worker, roadScript.getTopObject().transform.position, Quaternion.identity); WorkerScript worker = newWorker.GetComponent(typeof(WorkerScript)) as WorkerScript; worker.setDirection(roadScript.getBottomObject().transform.position); worker.setRoadMovingOn(roadScript); }
// Update is called once per frame void Update() { if (moveDirection != transform.position) { move(); } else { if (transform.position == roadMovingOn.getBottomObject().transform.position) { IcanHaveRoad haveRoad = roadMovingOn.getBottomObject().GetComponent(typeof(IcanHaveRoad)) as IcanHaveRoad; RoadScript newRoad = haveRoad.getRoad(); roadMovingOn = newRoad; if (moveDirection != newRoad.getTopObject().transform.position) { moveDirection = newRoad.getTopObject().transform.position; } else { moveDirection = haveRoad.getRoad().getBottomObject().transform.position; } } else { IcanHaveRoad haveRoad = roadMovingOn.getTopObject().GetComponent(typeof(IcanHaveRoad)) as IcanHaveRoad; RoadScript newRoad = haveRoad.getRoad(); roadMovingOn = newRoad; if (moveDirection != newRoad.getBottomObject().transform.position) { moveDirection = newRoad.getBottomObject().transform.position; } else { moveDirection = newRoad.getTopObject().transform.position; } } } }
void Start() { s_instance = this; for (int i = 0; i < transform.childCount; i++) { Transform road = transform.GetChild(i); float width = road.GetComponent <RectTransform>().sizeDelta.x; if (road.rotation.z == 0) { roadList.Add(new RoadInfo(road, width)); } else { ladderList.Add(new RoadInfo(road, width)); } if (!isShowLine) { road.GetComponent <Image>().color = new Color(0, 0, 0, 0); } } }
public void setRoadMovingOn(RoadScript theRoad) { roadMovingOn = theRoad; }
void FixedUpdate() { if (Input.touchCount == 2) { Touch touch0 = Input.GetTouch(0); Touch touch1 = Input.GetTouch(1); Vector2 touch0PrevPos = touch0.position - touch0.deltaPosition; Vector2 touch1PrevPos = touch1.position - touch1.deltaPosition; float prevMagnitude = (touch0PrevPos - touch1PrevPos).magnitude; float curMagnitude = (touch0.position - touch1.position).magnitude; float distance = curMagnitude - prevMagnitude; float moveDist = distance * 0.01f; gameCamera.ZoomInOut(moveDist); } else if (Input.touchCount == 1) { Touch touch = Input.GetTouch(0); Vector2 pos = Camera.main.ScreenToWorldPoint(touch.position); RaycastHit2D hit = Physics2D.Raycast(pos, Camera.main.transform.forward); if (buildStateActive) { float distance = Vector3.Distance(activeObject.transform.position, pos); PlatformScript platformScript = activeObject.GetComponent(typeof(PlatformScript)) as PlatformScript; /*Debug.Log(distance); * Debug.Log(activeObject.transform.position); * Debug.Log(pos);*/ if (touch.phase == TouchPhase.Began && willBuildObject != null && touch.position.y > 30 && hit.collider == null && distance <= 1.75f && platformScript != null && platformScript.canHaveMoreRoad() ) { IBuyAble buyAble = willBuildObject.GetComponent(typeof(IBuyAble)) as IBuyAble; if (buyAble != null && resourceManagerScript.canBuy(buyAble.getGoldPrice(), buyAble.getMinaralPrice())) { GameObject newObj = Instantiate(willBuildObject, pos, Quaternion.identity); IcanHaveRoad haveRoad = newObj.GetComponent(typeof(IcanHaveRoad)) as IcanHaveRoad; // rotate new object face to the platform Vector2 rotationVector = new Vector2( activeObject.transform.position.x - newObj.transform.position.x, activeObject.transform.position.y - newObj.transform.position.y ); newObj.transform.up = rotationVector; // Create road GameObject connetionRoad = Instantiate(road, activeObject.transform.position, Quaternion.identity); // rotate and scale the road between newObj and platform connetionRoad.transform.localScale += new Vector3(0, distance, 1); connetionRoad.transform.up = rotationVector; Vector3 roadPos = new Vector3( (newObj.transform.position.x + activeObject.transform.position.x) / 2, (newObj.transform.position.y + activeObject.transform.position.y) / 2, 15f ); connetionRoad.transform.position = roadPos; RoadScript roadScript = connetionRoad.GetComponent(typeof(RoadScript)) as RoadScript; // Set Road variables roadScript.setTopObject(newObj); // top object the builded object roadScript.setBottomObject(activeObject); // bottom object platform // Add road to new builded object haveRoad.addRoad(roadScript); // Adding roads to platformObject platformScript.addRoad(roadScript); if (newObj.CompareTag("Mine")) { checkMineAndMinaralConnetion(newObj); } if (newObj.CompareTag("House")) { resourceManagerScript.updateMaxPopulationCount(5); } if (newObj.CompareTag("defenceBuildings")) { TowerScript newDefenceBuilding = newObj.GetComponent(typeof(TowerScript)) as TowerScript; defanceBuildings.Add(newDefenceBuilding); } // Buy the building resourceManagerScript.buyBuilding(buyAble.getGoldPrice(), buyAble.getMinaralPrice()); } else { Debug.Log("you cant buy"); } } endBuildingState(); } else if (touch.phase == TouchPhase.Began) //check for the first touch { fp = Camera.main.ScreenToWorldPoint(touch.position); lp = Camera.main.ScreenToWorldPoint(touch.position); } else if (touch.phase == TouchPhase.Moved) // update the last position based on where they moved { lp = Camera.main.ScreenToWorldPoint(touch.position); if (Mathf.Abs(lp.x - fp.x) > dragDistance || Mathf.Abs(lp.y - fp.y) > dragDistance) { Vector3 camMovePos = lp - fp; gameCamera.Move(camMovePos); } } else if (touch.phase == TouchPhase.Ended) //check if the finger is removed from the screen { lp = Camera.main.ScreenToWorldPoint(touch.position); if (Mathf.Abs(lp.x - fp.x) > dragDistance || Mathf.Abs(lp.y - fp.y) > dragDistance) { Vector3 camMovePos = lp - fp; gameCamera.Move(camMovePos); } else { if (EventSystem.current.IsPointerOverGameObject() && buildPanel.activeSelf) { Debug.Log("on game object"); } else { if (buildPanel.activeSelf) { buildPanel.SetActive(false); } else { if (touch.position.y > 30) { if (hit.collider != null) { if (activeObject != null) { IselectAble tmp = activeObject.GetComponent(typeof(IselectAble)) as IselectAble; tmp.setSelect(false); activeObject = hit.collider.gameObject; IselectAble selectedObject = activeObject.GetComponent(typeof(IselectAble)) as IselectAble; selectedObject.setSelect(true); } else { activeObject = hit.collider.gameObject; IselectAble selectedObject = activeObject.GetComponent(typeof(IselectAble)) as IselectAble; selectedObject.setSelect(true); } } else { if (activeObject != null) { IselectAble platform = activeObject.GetComponent(typeof(IselectAble)) as IselectAble; if (platform != null) { platform.setSelect(false); activeObject = null; } } } } else { // menu element } } } } } } }
public void addRoad(RoadScript road) { roadList.Add(road); connetedRoadCount += 1; }
private void Awake() { roadScript = GameObject.Find("RoadParent").GetComponent <RoadScript>(); playerInp = Player.GetComponent <playerInput>(); }
public void addRoad(RoadScript roadScript) { road = roadScript; }