2016-11-28 17 views
0

私はゲームの仕上げに非常に近いです。私が投稿したすべてのコードはうまく機能しますが、ボックス(敵である)と衝突するかどうかにかかわらず、しかし、私はいくつかの研究をしようとしましたが、解決策を見つけることができません。これはどうすればいいですか?私の敵のスクリプトですUnity:オブジェクトの衝突による死亡

using UnityEngine; 
using System.Collections; 
using System; 

public class EnemySpawner : MonoBehaviour 
{ 

    public GameObject BlockPrefab; 

    float maxSpawnRateInSeconds = 2.5f; 

    void Start() 
    { 
     Invoke("SpawnEnemy", maxSpawnRateInSeconds); 
     InvokeRepeating("IncreaseSpawnRate", 0f, 30f); 
    } 

    // Update is called once per frame 
    void Update() 
    { 

    } 
    void SpawnEnemy() 
    { 
     Vector2 min = Camera.main.ViewportToWorldPoint(new Vector2(0, 0)); 

     Vector2 max = Camera.main.ViewportToWorldPoint(new Vector2(1, 1)); 

     GameObject anEnemy = (GameObject)Instantiate(BlockPrefab); 
     anEnemy.transform.position = new Vector2(UnityEngine.Random.Range(min.x, max.x), max.y); 


     ScheduleNextEnemySpawn(); 
    } 

    void ScheduleNextEnemySpawn() 
    { 
     float spawnInNSeconds; 

     if (maxSpawnRateInSeconds > 1f) 
     { 
      spawnInNSeconds = UnityEngine.Random.Range(1f, maxSpawnRateInSeconds); 
     } 
     else 
      spawnInNSeconds = 1f; 

     Invoke("SpawnEnemy", spawnInNSeconds); 
    } 

    void IncreaseSpawnRate() 
    { 
     if (maxSpawnRateInSeconds > 1f) 
      maxSpawnRateInSeconds--; 

     if (maxSpawnRateInSeconds == 1f) 
      CancelInvoke("IncreaseSpawnRate"); 
    } 


} 

そしてBlockScript.cs、::優れた作品

using UnityEngine; 
using System.Collections; 

public class JugadorScript : MonoBehaviour 
{ 

    public float velocidad = -10f; 
    void Start() 
    { 

    } 

    // Update is called once per frame 
    void Update() 
    { 

    } 
    public void moverIzquierda() 
    { 
     transform.Translate(Vector2.right * velocidad * Time.deltaTime); 
     transform.eulerAngles = new Vector2(0, 0); 
    } 
    public void moverDerecha() 
    { 
     transform.Translate(Vector2.right * velocidad * Time.deltaTime); 
     transform.eulerAngles = new Vector2(0, 180); 
    } 
} 

EnemySpawner.csコード、:ここでプレーヤー(JugadorScript.cs)のコードだ

using UnityEngine; 
using System.Collections; 

public class BlockScript : MonoBehaviour 
{ 

    private GameObject wayPoint; 
    private Vector3 wayPointPos; 
    private Rigidbody2D rigidBody2D; 
    public bool inGround = true; 
    private float jumpForce = 400f; 

    private float speed = 6.0f; 
    void Start() 
    { 

     wayPoint = GameObject.Find("wayPoint"); 
    } 

    private void awake() 
    { 
     rigidBody2D = GetComponent<Rigidbody2D>(); 
    } 


    void Update() 
    { 

     if (inGround) 
     { 
      inGround = false; 

      rigidBody2D.AddForce(new Vector2(0f, jumpForce)); 
     } 

     wayPointPos = new Vector3(wayPoint.transform.position.x, transform.position.y, 
      wayPoint.transform.position.z); 

     transform.position = Vector3.MoveTowards(transform.position, 
      wayPointPos, speed * Time.deltaTime); 

     Vector2 min = Camera.main.ViewportToWorldPoint(new Vector2(0, 0)); 

     if (transform.position.y < min.y) 
     { 
      Destroy(gameObject); 
     } 



    } 


} 
+2

MonoBehaviourメソッドは大文字と小文字が区別されることに注意してください!例えば。 'awake()!= Awake()'です。これは、あなたが頭痛の種になるのを防ぎます。 – Serlite

答えて

関連する問題