charactercontrollerを使ってプレイヤーを動かすスクリプトを作った後
ジャンプパッド(乗ると飛ぶやつ)のスクリプトを作ったのですが
プレイヤーを動かすスクリプト(以下Playermove)のpublic変数(Vector3)を
ジャンプパッドのスクリプト(以下jumppad)で参照できません
詳細
<プレイヤーの詳細>
・所持コンポーネント
キャラクターコントローラー
Playermove
<ジャンプパッドの詳細>
・所持コンポーネント
ボックスコライダー(isTrigger済)
jumppad
<地面について>
プレーン
メッシュコライダー(非isTrigger)
<Playermoveの内容>
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Playermove : MonoBehaviour { float h; float v; CharacterController controller; public Vector3 movedr; //この変数をスクリプトBで使う // Start is called before the first frame update void Start() { controller = GetComponent<CharacterController>(); } // Update is called once per frame void Update() { h = Input.GetAxis ("Horizontal"); v = Input.GetAxis ("Vertical"); if (controller.isGrounded) { movedr = new Vector3 (h, 0, v); } movedr.y -= 1 * Time.deltaTime; controller.Move(movedr * Time.deltaTime); transform.LookAt(transform.position + new Vector3 (h, 0, v)); } }
<jumppadの内容>
using System.Collections; using System.Collections.Generic; using UnityEngine; public class jumppad : MonoBehaviour { Playermove playermove; // Start is called before the first frame update void Start() { } void OnTriggerEnter(Collider other) { if (other.gameObject.name == "player") { Debug.Log("jump"); playermove = new Playermove(); //インスタンス化 playermove.movedr.y = 999999999999999.0F; //少しでも踏んだら上にぶっ飛ぶようにしています } } }
プレイヤーがジャンプパッドに触れる->Playermoveのmovedrのyに9999999...を代入
=>プレイヤーが上にぶっ飛ぶ
という流れで動かしたいのですが
デバッグの"jump"は送られるのですがプレイヤーが上にぶっ飛んでくれません
恐らくpublic変数の参照の仕方を間違っているのだと思いますが
どこが間違っているのでしょうか
教えていただけると幸いです
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/08/05 13:31