2017-02-22 23 views
-8

他のGameObjectの位置をローカライズする方法 と移動する(オブジェクトにテレポートするなど)どうすればいいですか?私はゲーム上で動作オブジェクトの位置を取得して位置を変換する方法

BotController.Player 

それは私がそれの位置を取得し、それを(テレポート)を移動したいオブジェクトの は場合

+1

トーチを使用してください!それは暗闇に役立ちます。 –

+0

Uhm ...あなたが求めていることははっきりしているとは思わない。 'transform.position'を設定します。あなたが動いているものは何でも構いません。 – Serlite

+0

時間旅行ができるなら、2154に飛び乗ってEmory Erickson博士のトランスポーターの最初のバージョンを手に入れることができます。テレポートは40kキロメートルに制限されますが、ゲームで十分です。 – Gusman

答えて

1

をハックあなたはすでにあなただけのどこでもthis.position = BotController.Player.positionを使用することができ、ターゲットオブジェクトへの参照を持っていますテレポートするオブジェクトに

public class EasyTeleporter : MonoBehavior 
{ 
... 
    public void SomeFunction() 
    { 
     position = BotController.Player.position 
    } 
} 

あなたが最初の人のゲームを作成し、そのためにレイキャスティングを使用する必要があります任意のオブジェクトへのテレポーターのような何かを達成したい場合。あなたは(資産ストアで利用できるか、新しいプロジェクトを開始するとき、あなたがそれを追加することができます)ユニティデフォルトの資産FirstPersonCharacterを取ることができ、FirstPersonCharacterのゲームオブジェクトに次のスクリプトを追加します。例えば

(ウィッヒはプレハブFPSControllerの子である):

using UnityEngine; 
using System.Collections; 

public class PlayerTeleporter : MonoBehaviour 
{ 

    bool shooting = false; 

    void Update() 
    { 

     if (Input.GetButtonDown("Fire1")) 
     { 
      shooting = true; 
     } 

    } 

    void FixedUpdate() 
    { 
     if (shooting) 
     { 
      shooting = false; 

      RaycastHit hit; 
// you are casting a ray in front of your camera wich hits the first collider in its path 
      if (Physics.Raycast(transform.position, transform.forward, out hit, 100f)) 
      { 
// normally you shouldn't teleport directly into the trget object 
       transform.position = hit.transform.position; 
      } 
     } 
    } 
} 

一般的に質問を明確にする必要があります。どのゲームを作成しているのか、テレポートのターゲットとオブジェクトは何ですか?どのようにトリガーしたいのですか?

関連する問題