public override void Escape() { Transform safeSpace = this.transform.Find("SafeSpace"); BaseSafeSpaceScript safeSpaceScript = safeSpace.GetComponent <BaseSafeSpaceScript> (); GameObject enemyInSightObj = safeSpaceScript.enemyInSightObj; if (enemyInSightObj != null) { Transform origial = enemyInSightObj.transform; Transform target = this.transform; Vector2 dir = (Vector2)(target.position - origial.position); //逃跑方向 dir = new Vector2(dir.x * 100, dir.y * 100); Vector2 target_ = dir + (Vector2)origial.position; // //3.飞行距离 // float dis = (origial.position-target.position).magnitude ;//计算两点间的距离 // if (tweener!=null){ // tweener.Kill (); // } // tweener = this.GetComponent<RectTransform> ().DOMove( new Vector3(target_.x,target_.y,0) , dis/speed ); // tweener.SetEase (Ease.Linear); RectTransform rect = this.GetComponent <RectTransform> (); RaycastHit hitInfo; float m_GroundCheckDistance = 40.0f; if (Physics2D.Raycast(new Vector2(target.position.x, target.position.y), dir, m_GroundCheckDistance)) { dir = Vector2.down; } else if (Physics2D.Raycast(new Vector2(0, rect.position.y), Vector2.down, m_GroundCheckDistance)) { dir = Vector2.up; } //Physics2D.Linecast } }