// Update is called once per frame void Update() { if (Input.GetMouseButton(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitinfo; if (Physics.Raycast(ray, out hitinfo, Mathf.Infinity, 1 << LayerMask.NameToLayer("Item"))) { BoxCtrl boxCtrl = hitinfo.collider.GetComponent <BoxCtrl>(); boxCtrl.OnHit(); Debug.Log(hitinfo.collider.name); } } #region Òƶ¯ if (cc == null) { return; } if (Input.GetMouseButton(0) || Input.touchCount == 1) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitinfo; if (Physics.Raycast(ray, out hitinfo, (int)LayerMask.GetMask("Ground"))) { target = hitinfo.point; rotateSpeed = 0; } } if (!cc.isGrounded) { cc.Move(Vector3.up * -1000); } if (target != Vector3.zero) { if (Vector3.Distance(transform.position, target) > 0.1f) { Vector3 dirction = (target - transform.position).normalized * speed * Time.deltaTime; if (rotateSpeed <= 1) { rotateSpeed += 5f; targetRotate = Quaternion.LookRotation(dirction); } transform.rotation = Quaternion.Lerp(transform.rotation, targetRotate, Time.deltaTime * rotateSpeed); cc.Move(dirction); } } #endregion CameraAutoFollow(); }
void Update() { if (CurrRoleFSMMgr != null) { CurrRoleFSMMgr.OnUpdate(); } //如果角色没有AI 直接返回 if (CurrRoleAI == null) { return; } CurrRoleAI.DoAI(); if (CharacterController == null) { return; } //让角色贴着地面 if (!CharacterController.isGrounded) { CharacterController.Move((transform.position + new Vector3(0, -1000, 0)) - transform.position); } if (Input.GetMouseButtonUp(1)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity, 1 << LayerMask.NameToLayer("Item"))) { BoxCtrl boxCtrl = hit.collider.GetComponent <BoxCtrl>(); if (boxCtrl != null) { boxCtrl.Hit(); } } } //让角色贴着地面 if (!CharacterController.isGrounded) { CharacterController.Move((transform.position + new Vector3(0, -1000, 0)) - transform.position); } if (CurrRoleType == RoleType.MainPlayer) { CameraAutoFollow(); } AutoSamllMap(); }
/// <summary> /// 按键检测 /// </summary> void KeyDetection() { //鼠标右键点击判断 if (Input.GetMouseButtonDown(1)) { //获取摄像机发出的一条射线 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitInfo; //判断射线是否相交 if (Physics.Raycast(ray, out hitInfo)) { //判断该射线是否与地面相交 if (hitInfo.collider.gameObject.name.Equals("Ground", System.StringComparison.CurrentCultureIgnoreCase)) { mTargetPos = hitInfo.point; isMoveOver = false; mRotateSpeed = 0.02f; } } } else if (Input.GetMouseButtonDown(0)) { //拾取单个物体 #region //鼠标左键拾取物体 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitInfo; //bitmask if (Physics.Raycast(ray, out hitInfo, Mathf.Infinity, 1 << LayerMask.NameToLayer("Item"))) { BoxCtrl boxCtrl = hitInfo.collider.gameObject.GetComponent <BoxCtrl>(); if (boxCtrl != null) { boxCtrl.Hit(); } } #endregion //拾取多个物体 #region //当前角色发出一条射线 // Collider[] colliders= Physics.OverlapSphere(transform.position,4f,1<<LayerMask.NameToLayer("Item")); // if(colliders.Length>0) // { // foreach (var item in colliders) // { // Debug.Log("找到了"+item.gameObject.name); // } // } #endregion } }
// Update is called once per frame void Update() { if (currentCount < maxCount) { if (Time.time > maxTime) { GameObject go = Instantiate <GameObject>(boxPrefab); go.transform.SetParent(boxParent); go.transform.position = boxCreateArea.TransformPoint(Random.Range(-0.5f, 0.5f), 0, Random.Range(-0.5f, 0.5f)); BoxCtrl boxCtrl = go.GetComponent <BoxCtrl>(); boxCtrl.Onhit = HitBox; maxTime += 0.5f; currentCount++; } } }
void Update() { if (m_CurrCount < m_MaxCount) { if (Time.time > m_NextCloneTime) { m_NextCloneTime = Time.time + 2f; //克隆 GameObject objClone = Instantiate(m_BoxPrefab) as GameObject; objClone.transform.parent = boxParent; objClone.transform.position = transCreateBox.TransformPoint(new Vector3(Random.Range(-0.5f, 0.5f), 0, Random.Range(-0.5f, 0.5f))); BoxCtrl boxCtrl = objClone.GetComponent <BoxCtrl>(); if (boxCtrl != null) { boxCtrl.OnHit = BoxHit; m_CurrCount++; } } } }
void Update() { //如果当前角色没有AI,直接返回 if (CurrRoleAI == null) { return; } CurrRoleAI.DoAI(); if (CurrRoleFSMMgr != null) { CurrRoleFSMMgr.OnUpdate(); } if (CharacterController == null) { return; } //让角色贴着地面 if (!CharacterController.isGrounded) { CharacterController.Move((transform.position + new Vector3(0, -1000, 0)) - transform.position); } //if (Input.GetMouseButtonUp(1)) //{ // Collider[] colliderArr = Physics.OverlapSphere(transform.position, 3, 1 << LayerMask.NameToLayer("Item")); // if (colliderArr.Length > 0) // { // for (int i = 0; i < colliderArr.Length; i++) // { // Debug.Log("找到了附近的箱子" + colliderArr[i].gameObject.name); // } // } //} if (Input.GetMouseButtonUp(1)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //RaycastHit[] hitArr = Physics.RaycastAll(ray, Mathf.Infinity, 1 << LayerMask.NameToLayer("Item")); //if (hitArr.Length > 0) //{ // for (int i = 0; i < hitArr.Length; i++) // { // Debug.Log("找到了" + hitArr[i].collider.gameObject.name); // } //} RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity, 1 << LayerMask.NameToLayer("Item"))) { BoxCtrl boxCtrl = hit.collider.GetComponent <BoxCtrl>(); if (boxCtrl != null) { boxCtrl.Hit(); } } } //让角色贴着地面 if (!CharacterController.isGrounded) { CharacterController.Move((transform.position + new Vector3(0, -1000, 0)) - transform.position); } if (CurRoleType == RoleType.MainPlayer) { CameraAutoFollow(); } //if (Input.GetKeyUp(KeyCode.R)) //{ // ToRun(); //} //else if (Input.GetKeyUp(KeyCode.N)) //{ // ToIdle(); //} //else if (Input.GetKeyUp(KeyCode.A)) //{ // ToAttack(); //} //else if (Input.GetKeyUp(KeyCode.H)) //{ // ToHurt(); //} //else if (Input.GetKeyUp(KeyCode.D)) //{ // ToDie(); //} }