// Update is called once per frame void Update() { var h = Input.GetAxis("Horizontal"); var v = Input.GetAxis("Vertical"); var velocity = new Vector3(h, v) * speed; transform.localPosition += velocity; // プレイヤーが画面外に出ないように位置を制限する transform.localPosition = Scroll.ClampPosition(transform.localPosition); // プレイヤーのスクリーン座標を計算する var screenPos = Camera.main.WorldToScreenPoint(transform.position); // プレイヤーから見たマウスカーソルの方向を計算する var direction = Input.mousePosition - screenPos; // マウスカーソルが存在する方向の角度を取得する var angle = Scroll.GetAngle(Vector3.zero, direction); // プレイヤーがマウスカーソルの方向を見るようにする var angles = transform.localEulerAngles; angles.z = angle - 90; transform.localEulerAngles = angles; //タイマー管理 shotTimer += Time.deltaTime; //撃つ時間じゃないなら終わる if (shotTimer < shotInterval) { return; } //リセット shotTimer = 0; //撃つ P_Shot(angle, shotAngleRange, shotSpeed, shotCount); }
// Update is called once per frame void Update() { //位置取得 var player = Player.instance.transform.localPosition; var distance = Vector3.Distance(player, transform.localPosition); //近づいたとき if (distance < Player.instance.magnetDistance) { isObey = true; } if (isObey && Player.instance.gameObject.activeSelf) { var direction = player - transform.localPosition; direction.Normalize(); // 宝石をプレイヤーが存在する方向に移動する transform.localPosition += direction * obeySpeed; // 加速近づく speed += obeyAccel; return; } //散らばる速さ var velocity = direction * speed; transform.localPosition += velocity; speed *= brake; transform.localPosition = Scroll.ClampPosition(transform.localPosition); }