2016-10-11 3 views
0

으로 나는 수집에 MagnetPower-Up가, 태그 Treasure 모든 활성 GameObjects을 발견하고 그들을 Player에 따라 만드는 내가 Player에 부착 한 스크립트를 작성했습니다 이동합니다.유니티 5 2D는 동전 플레이어

모든 것이 활성화되기를 바라는 것입니다. TreasureGameObjects은 포인트가 수집되도록 Player을 따르지 만 사실 실제로이를 향해 충돌합니다.

아래 코드는 지금까지 작성한 코드입니다.

using UnityEngine; 
using System.Collections; 

public class TreasureFollowPlayer : MonoBehaviour { 

    public GameObject[] treasures; 
    public bool magnetPowerUpEnabled = false; 


    void OnTriggerEnter2D(Collider2D col) 
    { 
    if (col.CompareTag("Magnetpowerup")) 
     { 
      col.gameObject.SetActive(false); 
      magnetPowerUpEnabled = true; 

     } 
    } 

     // Update is called once per frame 
    void Update() { 
     if (magnetPowerUpEnabled) 
     { 
      treasures = GameObject.FindGameObjectsWithTag("Treasure"); 
      foreach (var treasure in treasures) 
      { 
       treasure.transform.position = Vector2.MoveTowards(treasure.transform.position, transform.position, 1.0f * Time.deltaTime); 
      } 
     } 
    } 
} 
+1

당신의 코드는 보물을 보지 못하도록 보물을 플레이어쪽으로 이동시킵니다. 정확히 무슨 문제가 있습니까? 일단 보물이 플레이어와 충돌했다면 무엇을 수집합니까? 또한 속도를 1.0f 이상으로 높이십시오. –

+0

이 부분을 명확히 해주십시오. '실제로 플레이어쪽으로 가고 플레이어와 충돌합니다 .' –

+0

@UriPopov는 속도가 빨라지면 고맙습니다. – Nikolaj

답변

2

보물이 플레이어보다 빠르게 움직여야 플레이어가 따라 잡을 수 있습니다. 그런 다음 보물이나 onTriggerEnter 호출을 확인하는 플레이어에서 작은 스크립트를 만듭니다. 보물이 플레이어를 만졌을 때, 보물을 파괴하거나 불능화하는 기능을 해제하고 플레이어 점수를 높이는 것이 적절합니다.