###前提・実現したいこと
ここに質問したいことを詳細に書いてください
Unityでシューティングゲーム作っています。
そこでSpaceキーなどのキーを押している時間によって発射するオブジェクトの速さが変化するようにしたいです。また発射する速度の指標としてパワーゲージを作りました。
一応個別には動きましたが、連動はしませんでした。
私としましてはBarScriptにあるとおり、ゲージの幅を読み取って、発射速度に反映されるようにしたいのですが、どうすれば連動できるでしょうか?出来れば詳細もお願いします。
###発生している問題・エラーメッセージ
SendMessage Jump has no receiver! UnityEngine.Component:SendMessage(String, Object)
###該当のソースコード
using UnityEngine; using System.Collections; public class Pencase : MonoBehaviour { void Start () { } void Update () { if (Input.GetKeyUp(KeyCode.Space)) { transform.position = new Vector3(transform.position.x+ 1f, 30f, 0f); } } }
#パワーゲージのスクリプト
using UnityEngine; using UnityEngine.UI; using System.Collections; public class BarScript : MonoBehaviour { public PencaseScript PencaseScript; RectTransform rt; void Start () { //bar1のRectTransformコンポーネントをキャッシュ rt = GetComponent<RectTransform>(); } void Update (){ //スペースキー入力中である時ゲージを増やす if (Input.GetKeyDown (KeyCode.Space)) { //sizeDeltaでゲージの大きさを制御 //左端から、毎フレーム4ずつ増やす rt.sizeDelta = new Vector2 (rt.sizeDelta.x + 4.0f, 50.0f); //ゲージの横幅が300を超えたら0に戻る if (rt.sizeDelta.x >= 300) { rt.sizeDelta = new Vector2 (0.0f, 50.0f); } } //クリックを放した時 if (Input.GetKeyUp(KeyCode.Space)) { //GetShotForceメソッドへ、ゲージ横幅の3倍分の //ShotForceを送る PencaseScript.SendMessage("Shot", rt.sizeDelta.x * 2.5); //発射したら発射ゲージを0に戻す。 rt.sizeDelta = new Vector2 (0.0f, 50.0f); } } }
###試したこと
script内容の変更
弾の作成・発射から元あるオブジェクトをキー入力で移動させるものへ
###補足情報(言語/FW/ツール等のバージョンなど)