質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

2949閲覧

unityでRPGを作っています その3

haruru

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2015/06/15 16:37

こんばんわ。
haruruです。

今日も深夜のunity・・躓きの連続・・

まず、昨日のシーンジャンプはうまくいきました。(半分)
ですが、sceneを越えた後に特定の座標に移動してほしいので

using UnityEngine;
using System.Collections;

public class mapJump : MonoBehaviour {
public string nextScene;
public float x = 0.0f;
public float y = 0.0f;
public float z = 0.0f;

void OnTriggerEnter() { Application.LoadLevel(nextScene); transform.Position = new Vector3(x, y, z); } }

という感じで書いたら、これを割り当ててる城が飛んでいきます。。
(そりゃそうか・・)
飛んでほしいのは自機なのに・・

そして、自機を破棄しない処理
using UnityEngine;
using System.Collections;

public class Parmanent : MonoBehaviour {
public GameObject pc01;

void Awake(){ DontDestroyOnLoad (pc01);

}
}

これもうまく行きません。コンパイルエラーしている、と怒られます・・

解決策、ご教授いただければ幸いです。
本日も何卒宜しくお願いいたします。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

public class mapJump : MonoBehaviour {
public string nextScene;
public float x = 0.0f;
public float y = 0.0f;
public float z = 0.0f;
public GameObject pc01;

void OnTriggerEnter() { Application.LoadLevel(nextScene);

pc01.transform.Position =new Vector3(x, y, z);
// transform.Position = new Vector3(x, y, z);
}
}

ではないですか?

投稿2015/06/16 01:22

MasaakiIrie

総合スコア1021

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

haruru

2015/06/16 16:24

回答ありがとうございます。 現在 no monobehaviour scripts in the file or their names do not match the file name というエラーが全スクリプトに出ており、実験できません・・ ですが提案されたものですと、scene移動の際に移動値が破棄されてしまうと思うのですが、どうでしょうか・・?
haruru

2015/06/16 16:32

エラー直ったので、確認進めます・・
MasaakiIrie

2015/06/17 00:38

public GameObject pc01; これが全シーンで生きているなら pc01.setPost( x, y, z ); で残しておけばOKじゃないですか?
haruru

2015/06/18 16:00

mrmthdtmさんの方のコメントに、今回どうしたか、記載いたしました! 毎回回答くださりありがとうございます。 今回はこのように致しました。
guest

0

ベストアンサー

void OnTriggerEnter(Collider other)
{
other.transform.position = new Vector3(x,y,z);
}

transform.positionでは自分(この場合は城)です。
引数でぶつかった相手を拾えます。
ぶつかった相手を飛ばしましょう。

下のスクリプトは、ちょっとすぐには分かりませんがまさかnullではないですよね?

投稿2015/06/15 23:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

haruru

2015/06/16 01:14

おはようございます。 前々回に引き続き、回答いただきありがとうございます! 作業が深夜になりますので、そこで試してみて、また返答させていただきます。 宜しくお願いいたします。
haruru

2015/06/16 16:23

作業している途中で、何かが起きて今まで書いたスクリプトがすべて使用できなくなっています。。 no monobehaviour scripts in the file or their names do not match the file name というエラーが出ています。 新しくc#をcreateしても、それにもエラーが出ています。。 なので、実験が出来ずにいます・・
haruru

2015/06/16 16:32

昨日のバックアップから復元しました・・ ちょっと確認遅れるかもしれません! 寝る前に何とかしたいですが・・
haruru

2015/06/16 17:24

お答え参考にさせて頂きました。 で、ですね public class mapJump : MonoBehaviour { //次のシーン名 public string nextScene; //移動前の座標 public Vector3 startPosition; //トリガーに触れた、別のrigidbodyを private void OnTriggerEnter(Collider other) { //触れたgameobjectを破棄しません DontDestroyOnLoad (other.gameObject); //指定の座標に移動します。 other.transform.position = new Vector3 (x, y, z); //シーンをジャンプします。 Application.LoadLevel(nextScene); } } のように書きました・・が、 other.transform.position = new Vector3 (x, y, z); を記述するとエラーがでます。 どうしてでしょうか・・?
退会済みユーザー

退会済みユーザー

2015/06/16 23:27

エラーというのは、どういったエラーでしょうか? IDE側のエラーの内容が欲しいです。 とりあえずエラーになりそうな事はx,y,zは座標の意味で省略しましたので、x,y,zのままではエラーになります...数値で指定してください。ぐらいでしょうか? MasaaliIrieさんの答えにあるように、フィールドで座標を指定する、などをしてください。 float x = 0.0f; float y = 0.0f; float z = 0.0f; publicになってますが城から強制移動される位置情報を他がもつ必要は無いと思いますのでprivateにするのが普通かと。 そもそもVector3のpositionの値を変更しているだけですのでエラーになると言われてもそれぐらいしか思い浮かばないです...
haruru

2015/06/18 15:58

このようにしました。 using UnityEngine; using System.Collections; public class MapJump : MonoBehaviour { public string nextScene; public Vector3 startPosition; public GameObject camera_move; private void OnTriggerEnter(Collider other) { other.transform.position = startPosition; DontDestroyOnLoad (other.gameObject); DontDestroyOnLoad (camera_move); Application.LoadLevel(nextScene); } } しかしながら、カメラデータがシーンを跨げず、どうしようかと思っていますが。。 とにかく、指定のシーンの指定の座標に飛ぶことは出来ました! エラーの報告については、ちょっと無知なので次回からは詳細をあげれるようにします。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問