public void StartAttack() { if (mMoveState == EmoveState.SWING_move) { Vector3 startPos = transform.position; if (GetFirePlanePosition(out Vector3 endPos)) { mMoveState = EmoveState.ATTACK_move; int bezNum = Random.Range(5, 10); InitBezLine(bezNum, startPos, endPos); } } }
private void Return_Home_move() { Vector3 pos = transform.position; if (IsPosSame(pos, mHomePos)) { mMoveState = EmoveState.SWING_move; return; } float moveSpeed = Mathf.Abs(Mathf.Sin(mBezRunTime)); Vector3 newPos = CalcBezResult(moveSpeed); transform.position = newPos; }
private void Attack_Beze_move() { tBezPoint attackBzObj = (tBezPoint)(mAttackPointList[mAttackPointList.Count - 1]); if (IsPosSame(attackBzObj.pos, transform.position)) { mMoveState = EmoveState.RETRUN_HOME_move; int bezNum = Random.Range(5, 10); InitBezLine(bezNum, transform.position, mHomePos); return; } float moveSpeed = Mathf.Abs(Mathf.Sin(mBezRunTime)); //float moveSpeed = mBezRunTime; Vector3 newPos = CalcBezResult(moveSpeed); transform.position = newPos; }
void Start() { moveSpeed = 0.05f; maxMoveDistance = 1.0f; mHomePos = transform.position; mMoveState = EmoveState.SWING_move; mBezRunTime = 0; isRight = true; mAttackPointList = null; Vector3 leftBtm_cornerPos = Camera.main.ViewportToWorldPoint(new Vector3(0f, 0f, Mathf.Abs(-Camera.main.transform.position.z))); //这里的z轴在正交视图下意义不大 Vector3 rightTop_cornerPos = Camera.main.ViewportToWorldPoint(new Vector3(1f, 1f, Mathf.Abs(-Camera.main.transform.position.z))); mLeftPos = leftBtm_cornerPos.x; mRightPos = rightTop_cornerPos.x; mTopPos = rightTop_cornerPos.y; mBottomPos = leftBtm_cornerPos.y; }