// Use this for initialization void Start() { menuState = MenuState.None; actionState = ActionState.None; pickedBlockType = BlockType.None; pickedBlock = null; didMenuChange = false; elapsedTime = 0.0f; blockCount = 0; mainCamera = Camera.main; gameObjectController = FindObjectOfType <GameObjectController>(); statePanelController = FindObjectOfType <StatePanelController>(); raycastPoint = GameObject.Find("RaycastPoint"); leapEventSystem = GameObject.Find("LeapEventSystem"); canvas = GameObject.Find("Canvas"); mainPanel = GameObject.Find("MainPanel"); settingsPanel = GameObject.Find("SettingsPanel"); addPanel = GameObject.Find("AddPanel"); editPanel = GameObject.Find("EditPanel"); UpdateBackgroundColor(0.125f, 0.125f, 0.125f); raycastPoint.SetActive(false); canvas.SetActive(false); mainPanel.SetActive(false); settingsPanel.SetActive(false); addPanel.SetActive(false); editPanel.SetActive(false); }
void Update() { if (Input.touchCount > 0) { Touch touch = Input.GetTouch(0); touchPosition = touch.position; if (touch.phase == TouchPhase.Began) { Ray ray = arCamera.ScreenPointToRay(touchPosition); if (Physics.Raycast(ray, out RaycastHit hitObject)) { if (hitObject.collider.gameObject.GetComponent <Renderer>().enabled == true) { GameObjectController goc = gameObject.AddComponent <GameObjectController>(); goc.ToggleChildren(hitObject.collider.gameObject, true); } else { GameObjectController goc = gameObject.AddComponent <GameObjectController>(); goc.ToggleChildren(hitObject.collider.gameObject, false); } } } } }
void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == Block.Tag) { Block block = collision.gameObject.GetComponent <Block>(); GameObjectController gameObjectController = Toolbox.GameObjectController; GameController gameController = Toolbox.GameController; gameObjectController.DestroyBlock(block); gameController.AddPoints(block.points); if (gameObjectController.gameBlocks.Count == 0) { gameController.GoToNextLevel(); } } }
/// <summary> /// 全体抓取 /// </summary> public void AllCatch() { C_GOC.Clear(); //遍历非战斗单位的Nav并添加进来 for (int i = 0; i < CatchFunction._instance.L_Nav.Count; i++) { F2_Nav.Add(CatchFunction._instance.L_Nav[i]); m_gameobject = CatchFunction._instance.L_Nav[i].GetComponent <GameObjectController>(); C_GOC.Add(m_gameobject); m_gameobject.isBeCatch = true; isCtach = false; isSingle = false; catchMove = false; isF2 = true; } }
private void SyncMonsterAction() { List <GameObject> list = HasActionObjectManager.Instance.monsterManager.listObj(); for (int i = 0; i < list.Count; i++) { MonsterSyncActionPakage package = PackageFactory.GetPackage(PackageType.MonsterSyncAction) as MonsterSyncActionPakage; GameObjectController controller = list[i].GetComponent <GameObjectController>(); package.aoId = controller.baseAttribute.aoId; package.direction = controller.gameObjectInputState.moveDirection; package.isJump = controller.gameObjectInputState.jump; package.actionId = controller.goActionController.curAction.actionData.id; package.yRotate = list[i].transform.localRotation.eulerAngles.y; SendPackage(package); } }
/// <summary> /// 矩阵检测 /// </summary> /// <param name="start"></param> /// <param name="end"></param> private void CheckSelection(Vector3 start, Vector3 end) { Vector3 p1 = Vector3.zero; Vector3 p2 = Vector3.zero; if (start.x > end.x) { //这些判断是用来确保p1的xy坐标小于p2的xy坐标,因为画的框不见得就是左下到右上这个方向的 p1.x = end.x; p2.x = start.x; } else { p1.x = start.x; p2.x = end.x; } if (start.y > end.y) { p1.y = end.y; p2.y = start.y; } else { p1.y = start.y; p2.y = end.y; } for (int i = 0; i < CreateFunction._instance.allGameobject.Count; i++) { m_gameobject = CreateFunction._instance.allGameobject[i].GetComponent <GameObjectController>(); m_gameobject.isBeCatch = false; Vector3 location = M_C.WorldToScreenPoint(CreateFunction._instance.allGameobject[i].transform.position);//把对象的position转换成屏幕坐标 Debug.Log(m_gameobject.name + ":" + location); if (location.x < p1.x || location.x > p2.x || location.y < p1.y || location.y > p2.y || location.z < Camera.main.nearClipPlane || location.z > Camera.main.farClipPlane) //z方向就用摄像机的设定值,看不见的也不需要选择了 { //Null } else { CatchFunction._instance.C_GOC.Add(m_gameobject); CatchFunction._instance.C_Nav.Add(CreateFunction._instance.allGameobject[i].GetComponent <NavMeshAgent>()); m_gameobject.isBeCatch = true; } } }
/// <summary> /// 单个选取 /// </summary> public void SingleCatch(RaycastHit hit) { if (C_GOC != null) { Debug.Log("Close"); for (int i = 0; i < C_GOC.Count; i++) { C_GOC[i].isBeCatch = false; } } if (m_gameobject != null) { m_gameobject.isBeCatch = false; } //改变所有选取状态 isSingle = true; isCtach = false; catchMove = false; isF2 = false; //获取特效UI组件设置开关 m_gameobject = hit.collider.GetComponent <GameObjectController>(); m_gameobject.isBeCatch = true; Nav = hit.collider.GetComponent <NavMeshAgent>(); }
public void Start() { key = controller.GetComponent<GameController>().keysController; //obtenesmos las teclas configuradas goController = controller.GetComponent<GameController>().GOController; }