SHARE
TWEET

Untitled

a guest Jun 25th, 2019 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. //CharacterControllerを入れる
  5. [RequireComponent(typeof(CharacterController))]
  6.  
  7. public class LongJump : MonoBehaviour
  8. {
  9.     //CharacterControllerを変数にする
  10.     CharacterController controller;
  11.    
  12.     //落ちる速さ、重力
  13.     public float gravity = 10f;
  14.     //ジャンプ力
  15.     private float jumpSpeed = 5f;
  16.  
  17.     //Playerの移動や向く方向を入れる
  18.     Vector3 moveDirection;
  19.  
  20.     //ジャンプボタン離したことを判定
  21.     //二段ジャンプを防ぐため
  22.     private bool jumpUpEnd = false;
  23.  
  24.     //ジャンプボタン押している時間を判定
  25.     //その時間を制限するため
  26.     [SerializeField] float jumpTime;
  27.  
  28.     void Start()
  29.     {
  30.         //CharacterControllerを取得
  31.         controller = GetComponent<CharacterController>();
  32.     }
  33.    
  34.     void Update()
  35.     {
  36.         //Playerが地面に設置していることを判定
  37.         if (controller.isGrounded)
  38.         {
  39.             // Y軸方向にジャンプさせる
  40.             if (Input.GetButtonDown("Jump"))
  41.                 moveDirection.y = jumpSpeed;
  42.  
  43.             //ジャンプ中に関わる変数
  44.             //地面についている時にリセット
  45.             jumpUpEnd = false;
  46.             jumpTime = 0;
  47.         }
  48.         else
  49.         {
  50.             //ジャンプボタン押していると上昇
  51.             //押している時間3秒まで、jumpUpEndがfalseの場合有効
  52.             if (Input.GetButton("Jump") && jumpTime < 3f && !jumpUpEnd)
  53.             {
  54.                 //ジャンプボタン押している秒数を加算
  55.                 jumpTime += Time.deltaTime;
  56.                 moveDirection.y = jumpSpeed;
  57.             }
  58.  
  59.             //ジャンプ中にジャンプボタン離したことを記録
  60.             //jumpUpEndがfalseの場合有効
  61.             if (Input.GetButtonUp("Jump") && !jumpUpEnd)
  62.             {
  63.                 //二回ジャンプできなくする
  64.                 jumpUpEnd = true;
  65.             }
  66.         }
  67.  
  68.         // 重力を設定しないと落下しない
  69.         moveDirection.y -= gravity * Time.deltaTime;
  70.  
  71.         // Move関数に代入する
  72.         controller.Move(moveDirection * Time.deltaTime);
  73.     }
  74. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top