// 方向の登録 public void SetDirection(Vector3 direction) { // 初期化処理を行う Init(); // 移動方向の決定(プレイヤーの正面に向ける) moveVector = direction * speed; // 自分で出した魔法ならば if (photonView.isMine) { // 移動速度を同期する photonTransformView.SetSynchronizedValues(speed: moveVector, turnSpeed: 0); } }
void playerMoving() { playerMoveVector = Vector3.zero; if (Input.GetKey(KeyCode.W)) { playerMoveVector.z += 1; } if (Input.GetKey(KeyCode.A)) { playerMoveVector.x -= 1; } if (Input.GetKey(KeyCode.S)) { playerMoveVector.z -= 1; } if (Input.GetKey(KeyCode.D)) { playerMoveVector.x += 1; } // 1second moveSpeed moving playerMoveVector = playerMoveVector.normalized * moveSpeed * Time.deltaTime; // if moving if (playerMoveVector.magnitude > 0) { transform.position += playerMoveVector; } Vector3 velocity = playerMoveVector; myPTV.SetSynchronizedValues(velocity, 0); }
// Update is called once per frame void Update() { //自キャラじゃなければ実行。 if (!MyPV.isMine) { return; } MoveControl(); //移動用関数。 RotationControl(); //旋回用関数。 //最終的な移動処理。 //(これが無いとCharacterControllerに情報が送られないため、動けない)。 CharaCon.Move(MoveDirection * Time.deltaTime); //スムーズな同期のためにPhotonTransformViewに速度値を渡す。 Vector3 velocity = CharaCon.velocity; MyPTV.SetSynchronizedValues(velocity, 0); if (PlayerAnimator != null) { Vector2 xz = new Vector2(MoveDirection.x, MoveDirection.z); if (xz.magnitude > 0.1f) { PlayerAnimator.SetFloat("Speed", MoveDirection.magnitude); } else { PlayerAnimator.SetFloat("Speed", 0.0f); } } }
void Update() { _PhotonTransform.SetSynchronizedValues(_Rigibody2D.velocity, 0f); if (!_PhotonView.isMine) { return; } //Jump Detection Only, no physics handling. if (controlsPaused) { moveLeft = 0; moveRight = 0; return; } if (isFrozen) { return; } updateSpecials(); updateJumping(); updateDownJumping(); updateAttacks(); updateMovement(); UpdateHurt(); }
// Update関数は1フレームに1回実行される void Update() { if (!myPV.isMine) { return; } //移動ロックONまたは死亡フラグONであれば移動、攻撃をさせない if (!MoveLock && !Deadflag) { moveControl(); //移動用関数 RotationControl(); //旋回用関数 } //攻撃ロックがかかっていなければ攻撃できる if (!AttackLock) { //攻撃処理 AttackControl(); } //最終的な移動処理 //(これが無いとCharacterControllerに情報が送られないため、動けない) controller.Move(moveDirection * Time.deltaTime); //スムーズな同期のためにPhotonTransformViewに速度値を渡す Vector3 velocity = controller.velocity; myPTV.SetSynchronizedValues(velocity, 0); }
/// <summary> /// スクリプトが開始した時の処理 /// </summary> virtual protected void Start() { // 敵の元データが無いならば if (enemyResourceData == null) { // 敵の元データを読み込む enemyResourceData = Resources.Load <Entity_Sahagin>("Enemy/EnemyData/EnemyData"); } // 敵の名前を設定する(継承先で設定する) SetName(); // 敵のデータを読み込む LoadEnemyData(); // ステータスを設定する if (!SetStatus() && PhotonNetwork.isMasterClient) { // エラー文を表示 Debug.LogError(enemyName + "のステータスが設定されていません。"); // ネットワークに接続されていたら if (PhotonNetwork.connected) { // ネットワーク上から削除する PhotonNetwork.Destroy(this.gameObject); } // ネットワークに接続されていなければ else { // ローカル上で削除する GameObject.Destroy(this.gameObject); } // 処理から抜ける return; } // マスタークライアントでなければ else if (!PhotonNetwork.isMasterClient) { // マスタークライアントにレベルと名前を送ってもらう RequireLevelAndNameForMaster(); } // スクリプトコンポーネントのあるオブジェクトを格納する scripts = GameObject.FindGameObjectWithTag("Scripts"); // アニメーションコンポーネントを取得する anim = gameObject.GetComponent <Animator>(); // 通信同期のためのコンポーネントを取得する photonTransformView = gameObject.GetComponent <PhotonTransformView>(); // 物理演算の為のコンポーネントを取得する rigBody = gameObject.GetComponent <Rigidbody>(); // 攻撃用あたり判定コンポーネントをオフにする DisableAttackColliders(); // マスタークライアントならば if (PhotonNetwork.isMasterClient) { // 移動速度を設定する moveValue.z = moveSpeed; // 通信同期のための移動速度を送る photonTransformView.SetSynchronizedValues(moveValue, 0f); } // ヘイトが一番高いプレイヤーを探す GetHaightHighestPlayer(); }
// Update is called once per frame void Update() { if (ipPV.isMine) { Vector3 velocity = rb.velocity; ipPTV.SetSynchronizedValues(speed: velocity, turnSpeed: 0); } }
// Update is called once per frame void Update() { if (photonView.isMine) { //現在の移動速度 Vector3 velocity = gameObject.GetComponent <Rigidbody>().velocity; //移動速度を指定 photonTransformView.SetSynchronizedValues(velocity, 0); } }
private void Update() { if (photonView.isMine) { //現在の移動速度 var velocity = GetComponent <Rigidbody>().velocity; //移動速度を指定 photonTransformView.SetSynchronizedValues(speed: velocity, turnSpeed: 0); } }
public void FixedUpdate() { //自キャラかどうかの判定。 if (!MyPV.isMine) { return; } Motor = maxMotorTorque * Input.GetAxis("Accel"); Braek = maxbrakeTorque * Input.GetAxis("Jump"); float steering = maxSteeringAngle * Input.GetAxis("Horizontal"); if (IsRunFlag == false) { Stop(); } foreach (AxleInfo axleInfo in axleInfos) { if (axleInfo.steering) { axleInfo.leftWheel.steerAngle = steering; axleInfo.rightWheel.steerAngle = steering; } if (axleInfo.motor) { axleInfo.leftWheel.motorTorque = Motor; axleInfo.rightWheel.motorTorque = Motor; } if (axleInfo.brake) { axleInfo.leftWheel.brakeTorque = Braek; axleInfo.rightWheel.brakeTorque = Braek; } ApplyLocalPositionToVisuals(axleInfo.leftWheel); ApplyLocalPositionToVisuals(axleInfo.rightWheel); } //スムーズな同期のためにPhotonTransformViewに速度値を渡す。 //RigidBody.transform.position -= Acceleration; Velocity = RigidBody.velocity; MyPTV.SetSynchronizedValues(Velocity, 0); }
// Update is called once per frame void Update() { Vector3 velocity = Rb.velocity; MyPTV.SetSynchronizedValues(velocity, 0.0f); //あと何人予約出来るのか計算。 //予約出来る人数=レース開始人数ー現在の予約人数。 int num; num = LaceManager.GetComponent <LaceManager>().GetLacePlayStartNum() - LaceManager.GetComponent <LaceManager>().GetLacePlayerList().Count; LaceStartNumText.text = "レースに必要な人数:あと" + num.ToString("0") + "人"; }
// Update is called once per frame void Update() { if (!myPV.isMine) { return; } MoveControl(); RotationControl(); controller.Move(moveDirection * Time.deltaTime); Vector3 velocity = controller.velocity; myPTV.SetSynchronizedValues(velocity, 0); }
// Update is called once per frame private void Update() { if (!MyPhotonView.isMine) { return; } MoveControl(); RotationControl(); CharController.Move(motion: _charMoveVector * Time.deltaTime); // スムーズな同期のためにPhotonTransformViewに速度値を渡す Vector3 velocity = CharController.velocity; MyPhotonTransformView.SetSynchronizedValues(speed: velocity, turnSpeed: 0); }
void Update() { if (!myPV.isMine) { return; } moveControl(); //移動用関数 RotationControl(); //旋回用関数 //最終的な移動処理 //(これが無いとCharacterControllerに情報が送られないため、動けない) controller.Move(moveDirection * Time.deltaTime); //スムーズな同期のためにPhotonTransformViewに速度値を渡す Vector3 velocity = controller.velocity; myPTV.SetSynchronizedValues(velocity, 0); }
/// <summary> /// 移動関連 /// 何も入力していない時に摩擦は2.0fに設定 /// </summary> void Move() { rigidbody.velocity = Vector2.zero; //ボタン入力 ButtonTouchFlagSet(); if (GlobalGameManager._instance.UserId == (int)GlobalGameManager.PLAYER_TYPE.PLAYER) { //左 if (_leftMoveFlag == true) { LeftMove(); } //右 if (_rightMoveFlag == true) { RightMove(); } //摩擦 if (_leftMoveFlag == false && _rightMoveFlag == false) { _friction = 2.0f; } //縦移動 JumpMove(); //横移動値に摩擦を加算 _inputHorizontal -= Mathf.Lerp(0.0f, _inputHorizontal, Time.deltaTime * _moveSpeed / _friction); //ブロックとの判定を取得してHorizontalの値を修正 CollisionBlocks(); //横移動と縦移動の値をセット _move = new Vector2(_inputHorizontal * _moveSpeed, _inputVertical); rigidbody.velocity = _move; SetAnimation(); } photonTransformView.SetSynchronizedValues(speed: rigidbody.velocity, turnSpeed: 0); }
// Update is called once per frame private void Update() { if (!MyPhotonView.isMine) { return; } MoveControl(); RotationControl(); CharController.Move(motion: _charMoveVector * Time.deltaTime); // スムーズな同期のためにPhotonTransformViewに速度値を渡す Vector3 velocity = CharController.velocity; MyPhotonTransformView.SetSynchronizedValues(speed: velocity, turnSpeed: 0); // if (CanDropBombs && Input.GetKeyDown(KeyCode.Space)) { //Drop bomb DropBomb(); } }
void ApplySynchronizedValues() { m_TransformView.SetSynchronizedValues(m_CurrentMovement, m_CurrentTurnSpeed); }
void ApplySynchronizedValues() { _photonTransformView.SetSynchronizedValues(_currentMovement, _currentTurnSpeed); }
// Update is called once per frame void Update() { if (m_PhotonView.isMine == false && PhotonNetwork.connected == true) { return; } if (animator) { AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0); if (stateInfo.IsName("Base Layer.Run")) { if (Input.GetButton("Fire1")) { animator.SetBool("Jump", true); } } else { animator.SetBool("Jump", false); } if (Input.GetButtonDown("Fire2") && animator.layerCount >= 2) { animator.SetBool("Hi", !animator.GetBool("Hi")); } float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); if (v < 0) { v = 0; } animator.SetFloat("Speed", h * h + v * v); animator.SetFloat("Direction", h, DirectionDampTime, Time.deltaTime); float direction = animator.GetFloat("Direction"); float targetSpeedModifier = Mathf.Abs(v); if (Mathf.Abs(direction) > 0.2f) { targetSpeedModifier = TurnSpeedModifier; } m_SpeedModifier = Mathf.MoveTowards(m_SpeedModifier, targetSpeedModifier, Time.deltaTime * 25f); Vector3 speed = transform.forward * SynchronizedMaxSpeed * m_SpeedModifier; float turnSpeed = direction * SynchronizedTurnSpeed; /*float moveDistance = Vector3.Distance( transform.position, m_LastPosition ) / Time.deltaTime; * * if( moveDistance < 4f && turnSpeed == 0f ) * { * speed = transform.forward * moveDistance; * }*/ //Debug.Log( moveDistance ); //Debug.Log( speed + " - " + speed.magnitude + " - " + speedModifier + " - " + h + " - " + v ); m_TransformView.SetSynchronizedValues(speed, turnSpeed); //m_LastPosition = transform.position; } }
// Update is called once per frame void Update() { float x = this.transform.position.x - prevPos.x; float y = this.transform.position.y - prevPos.y; Vector2 vec = new Vector2(x, y).normalized; if (System.Math.Abs(rb.velocity.magnitude) < 0.2f) { //ルンバが停止したらオーナーの変更を行う if (System.Math.Abs(preVec) > 0.2f) { changeOwnerFlag = true; } if (changeOwnerFlag == true) { changeOwner(); } //所有者しか触れないようにする if (PhotonNetwork.player.ID == this.photonView.ownerId) { if (Input.GetMouseButtonDown(0)) { this.StartPos = Input.mousePosition; } else if (Input.GetMouseButtonUp(0)) { arrow.SetActive(false); Vector2 EndPos = Input.mousePosition; Vector2 startDirction = -1 * (EndPos - StartPos).normalized; this.rb.AddForce(startDirction * speed); } else if (Input.GetMouseButton(0)) { arrow.SetActive(true); arrowScale = rbArrow.transform.localScale; nowPos = Input.mousePosition; arrowDirection = -1 * (nowPos - StartPos).normalized; rbArrow.transform.up = -1 * arrowDirection; arrowScale.y = (nowPos - StartPos).magnitude * 0.1f; if (arrowScale.y >= 25f) { arrowScale.y = 25f; StartCoroutine(vib()); } this.speed = (nowPos - StartPos).magnitude * 2f; if (this.speed > 1000) { this.speed = 1000; } rbArrow.transform.localScale = arrowScale; } } } Debug.Log("現在のオーナーは" + this.photonView.ownerId + "です。 あなたのIDは" + PhotonNetwork.player.ID); preVec = rb.velocity.magnitude; photonTransformView.SetSynchronizedValues(speed: rb.velocity, turnSpeed: 0); //摩擦力 rb.velocity *= 0.96f; prevPos = this.transform.position; //Debug.Log(System.Math.Abs(rb.velocity.magnitude)); }
/// <summary> /// スクリプトが開始した時の処理 /// </summary> protected virtual void Start() { // 敵の元データが無いならば if (enemyResourceData == null) { // 敵の元データを読み込む enemyResourceData = Resources.Load<Entity_Sahagin>("Enemy/EnemyData/EnemyData"); } // 敵の名前を設定する(継承先で設定する) SetName(); // 敵のデータを読み込む LoadEnemyData(); // ステータスを設定する if (!SetStatus() && PhotonNetwork.isMasterClient) { // エラー文を表示 Debug.LogError(enemyName + "のステータスが設定されていません。"); // ネットワークに接続されていたら if (PhotonNetwork.connected) { // ネットワーク上から削除する PhotonNetwork.Destroy(this.gameObject); } // ネットワークに接続されていなければ else { // ローカル上で削除する GameObject.Destroy(this.gameObject); } // 処理から抜ける return; } // マスタークライアントでなければ else if (!PhotonNetwork.isMasterClient) { // マスタークライアントにレベルと名前を送ってもらう RequireLevelAndNameForMaster(); } // スクリプトコンポーネントのあるオブジェクトを格納する scripts = GameObject.FindGameObjectWithTag("Scripts"); // アニメーションコンポーネントを取得する anim = gameObject.GetComponent<Animator>(); // 通信同期のためのコンポーネントを取得する photonTransformView = gameObject.GetComponent<PhotonTransformView>(); // 物理演算の為のコンポーネントを取得する rigBody = gameObject.GetComponent<Rigidbody>(); // 攻撃用あたり判定コンポーネントをオフにする DisableAttackColliders(); // マスタークライアントならば if (PhotonNetwork.isMasterClient) { // 移動速度を設定する moveValue.z = moveSpeed; // 通信同期のための移動速度を送る photonTransformView.SetSynchronizedValues(moveValue, 0f); } // ヘイトが一番高いプレイヤーを探す GetHaightHighestPlayer(); }
// Update is called once per frame void Update() { if (!m_photonView.isMine) { return; } if (transform.position.z > Height_f / 2 - 2) { transform.position = new Vector3(transform.position.x, transform.position.y, Height_f / 2 - 2.5f); } if (transform.position.z < -Height_f / 2 + 2) { transform.position = new Vector3(transform.position.x, transform.position.y, -Height_f / 2 + 2.5f); } if (Input.touchCount > 0) { //タッチを取得 Touch touch = Input.touches [0]; //タッチフェーズによって場合分け switch (touch.phase) { //タッチ開始時 case TouchPhase.Began: startPos = touch.position; break; //タッチ終了時 /*case TouchPhase.Moved: * endPos = new Vector2 (touch.position.x, touch.position.y); * float swipeDistX = (new Vector3 (endPos.x, 0, 0) - new Vector3 (startPos.x, 0, 0)).magnitude; * float swipeDistY = (new Vector3 (0, endPos.y, 0) - new Vector3 (0, startPos.y, 0)).magnitude; * * if (swipeDistX > swipeDistY && swipeDistX > minSwipeDistX) * { * float SignValueX = Mathf.Sign (endPos.x - startPos.x); * if (SignValueX > 0) * { * //右方向にスワイプしたとき * } else if (SignValueX < 0) * { * //左方向にスワイプしたとき * } * } else if (swipeDistY > minSwipeDistY) * { * float SignValueY = Mathf.Sign (endPos.y - startPos.y); * if (SignValueY > 0) * { * //上方向にスワイプしたとき * Debug.Log("Up"); * } else if (SignValueY < 0) * { * //下方向にスワイプしたとき * Debug.Log("Down"); * //Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition; * //transform.Translate(0, 0, -touchDeltaPosition.y * speed); * } * if(endPos.y < Height_s_max && endPos.y > Height_s_min){ * float move = (endPos.y - startPos.y)*delta; * Vector3 temp = transform.position; * temp.z -= move; * transform.position = temp; * startPos = endPos; * } * } * if (swipeDistX < minSwipeDistX && swipeDistY < minSwipeDistY) * { * // タップした時 * }*/ break; } } //現在の移動速度 v = racket.velocity; //移動速度を指定 photonTransformView.SetSynchronizedValues(speed: v, turnSpeed: 0); HandleTap(); }