みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Unityの質問です。

ボタンを押すと、キャラクターの真後ろにオブジェクトが出現するようにしたいのですが、

using UnityEngine;
using System.Collections;
[ExecuteInEditMode()]
public class GUIController : MonoBehaviour {
public CharacterController characterController;
public GameObject character;
public GameObject domino;
private Vector3 objPosition;
// Use this for initialization
void Start () {
objPosition = new Vector3 (0, 0, 0);
}

void OnGUI(){
if(GUI.Button(new Rect(600, Screen.height - 160, 120, 120), "おす")){
Debug.Log("ぼたん");
float x = characterController.transform.localPosition.x;
float y = characterController.transform.localPosition.y + 0.5f;
float z = characterController.transform.localPosition.z - 0.64f;
objPosition.Set(x, y, z);
Debug.Log (x+","+y+","+z);
GameObject domino_prefab = (GameObject)Instantiate(domino,objPosition, characterController.transform.rotation);
}
}
}

こうしてみたのですが、うまくキャラクターの真後ろにオブジェクトが出てきてくれません。
どなたか助けてください!

投稿日時 - 2014-01-06 23:47:34

QNo.8417986

すぐに回答ほしいです

質問者が選んだベストアンサー

localPosition ではなく transform. TransformPoint ですね。もしもキャラに追従させたいのであれば オブジェクトを出現させてから •••transform.parent = ネーム です。それから transform. localPosotionで座標を指定します。追従しない場合は上で追従する場合下です。transform.parent にオブジェクトネームを指定すると自動的に一つの固まりとしてシーン上に存在できます。

投稿日時 - 2014-01-19 14:08:46

お礼

返事が遅れてしまい申し訳ありません。

無事、解決できました。
ありがとうございます!

投稿日時 - 2014-01-22 23:27:22

ANo.1

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

あ あと objPosition =newVector3(0,0.5,0.64);で良いですよ。

投稿日時 - 2014-01-19 14:27:32

ANo.2

書き足しですが。
localPosition はそのまま指定して良いです。自分の位置を(0,0,0)として考えるのでlocalPosition =(x,y,z); で良いです。
TransformPoint は、ワールド座標で指定したものがunity内部で変換してくれるので。
objPosition =gameobject.transform. Position +newVector3(x,y,z); となります。
x y z は任意の数値です。質問者さんの例で書けば (0,0.5,0.64)ですね。

投稿日時 - 2014-01-19 14:23:25

あなたにオススメの質問