private void showPossibleMoves() { Vector2Int?mousePos = getMouseToBoardPos(); if (mousePos == null || _chackers[mousePos.Value.x, mousePos.Value.y] == null) { if (!_moving) { hideAllParticle(); } return; } CheckerScript checkerScript = _chackers[mousePos.Value.x, mousePos.Value.y].GetComponent(typeof(CheckerScript)) as CheckerScript; if (checkerScript is null || _moving) { return; } Vector2Int[] possibleMoves = checkerScript.PossibleMoves; foreach (var move in possibleMoves) { Vector2Int targetPos = mousePos.Value + move; if (targetPos.x >= 0 && targetPos.x < 4 && targetPos.y >= 0 && targetPos.y < 4 && !_chackers[targetPos.x, targetPos.y]) { getField(targetPos.x, targetPos.y).script.StartParticle(); } } }
// Use this for initialization void Start() { mesoObj = GameObject.Find("Checker"); mesoScript = mesoObj.GetComponent <CheckerScript> (); mesoObj2 = GameObject.Find("OpeningChecker"); mesoScript2 = mesoObj2.GetComponent <OpeningChecker> (); }
public GameObject instantiateChecker(string name, Vector3 position, Vector3 scale) { if (!_allCharacters.ContainsKey(name)) { return(null); } GameObject checker = Instantiate(CheckerPrefab, position, Quaternion.identity); CheckerScript script = checker.GetComponent(typeof(CheckerScript)) as CheckerScript; script.initailize(_allCharacters[name]); checker.transform.SetParent(transform); checker.transform.localScale = scale; return(checker); }
private bool isMoveAvaiable(Vector2Int from, Vector2Int to) { Vector2Int move = to - from; CheckerScript script = _chackers[from.x, from.y].GetComponent(typeof(CheckerScript)) as CheckerScript; if (!script) { return(false); } foreach (var possibleMove in script.PossibleMoves) { if (possibleMove.Equals(move)) { return(true); } } return(false); }