2017-11-08 11 views
0

インスタンス化されたボールをインスタンス化されたプレーヤにフォローしたいと思います。私のボールが階層からプレーヤをたどると、うまく動作しますが、プレーヤをインスタンス化すると動作しません。インスタンス化されたオブジェクトに他のインスタンス化されたオブジェクトを続ける方法

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class ExtraBallController : MonoBehaviour 
{ 
    public Transform target; 
    private int distance = 30; 

    // Use this for initialization 
    void Start() 
    { 

    } 

    // Update is called once per frame 
    void Update() 
    { 
     this.transform.position = new Vector3 (target.transform.position.x, target.transform.position.y, distance); 
    } 
} 
+0

GameObjectとしてtargetを宣言してみてください。 – Thalthanas

+0

「動作しない」とは何ですか?何かエラーがありますか?プレーヤが実行時にインスタンス化されている場合は、実行時にターゲットを取得する必要があります。多くの可能性があります。最も簡単で(最も汚い)のは 'GameObject.Find'を呼び出すことです。プレーヤーをインスタンス化するために使用するコードを提供していないので、正確な解決策を提供することは難しいです。 – Hellium

+0

デバッグのヘルプ(「なぜこのコードは動作しませんか?」)には、目的の動作、特定の問題またはエラー、および質問自体に再現するのに必要な最短コードが含まれている必要があります。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:最小、完全、および検証可能な例を作成する方法。 –

答えて

0

@Helliumによれば、多くの可能性があります。 1つの方法は、プレーヤーがインスタンス化されたときにボールのターゲットを設定することです。ここ は、サンプルコード(未テスト)です:

GameObject player = Instantiate(playerPrefab, vectorPos, Quaternion.Identity); 
ExtraBallController[] balls = FindObjectsOfType(typeof(ExtraBallController)) as ExtraBallController[]; 
foreach(ExtraBallController ball in balls){ 
ball.target = player.transform; 
} 

は、この情報がお役に立てば幸い!

関連する問題