示例#1
0
 // 方向の登録
 public void SetDirection(Vector3 direction)
 {
     // 初期化処理を行う
     Init();
     // 移動方向の決定(プレイヤーの正面に向ける)
     moveVector = direction * speed;
     // 自分で出した魔法ならば
     if (photonView.isMine)
     {
         // 移動速度を同期する
         photonTransformView.SetSynchronizedValues(speed: moveVector, turnSpeed: 0);
     }
 }
示例#2
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);
    }
示例#3
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();
    }
示例#5
0
    // 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);
    }
示例#6
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();
 }
示例#7
0
 // Update is called once per frame
 void Update()
 {
     if (ipPV.isMine)
     {
         Vector3 velocity = rb.velocity;
         ipPTV.SetSynchronizedValues(speed: velocity, turnSpeed: 0);
     }
 }
示例#8
0
 // Update is called once per frame
 void Update()
 {
     if (photonView.isMine)
     {
         //現在の移動速度
         Vector3 velocity = gameObject.GetComponent <Rigidbody>().velocity;
         //移動速度を指定
         photonTransformView.SetSynchronizedValues(velocity, 0);
     }
 }
示例#9
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);
    }
示例#11
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);
    }
示例#14
0
    void Update()
    {
        if (!myPV.isMine)
        {
            return;
        }
        moveControl();     //移動用関数
        RotationControl(); //旋回用関数

        //最終的な移動処理
        //(これが無いとCharacterControllerに情報が送られないため、動けない)
        controller.Move(moveDirection * Time.deltaTime);

        //スムーズな同期のためにPhotonTransformViewに速度値を渡す
        Vector3 velocity = controller.velocity;

        myPTV.SetSynchronizedValues(velocity, 0);
    }
示例#15
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();
        }
    }
示例#17
0
 void ApplySynchronizedValues()
 {
     m_TransformView.SetSynchronizedValues(m_CurrentMovement, m_CurrentTurnSpeed);
 }
示例#18
0
 void ApplySynchronizedValues()
 {
     _photonTransformView.SetSynchronizedValues(_currentMovement, _currentTurnSpeed);
 }
示例#19
0
    // 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));
    }
示例#21
0
文件: EnemyData.cs 项目: GochiMMO/MMO
 /// <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();
 }
示例#22
0
    // 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();
    }