为什么碰撞不能正常工作?为什么它不会加载到下一个级别?

时间:2016-06-01 19:31:49

标签: c# tags collision points gameobject

这是一项大学任务,目的如下:

对于第一级:在30秒内收集3个对象。 第二级:在90秒内收集尽可能多的对象。

我主要做了第一级,碰撞工作正常,但由于某种原因它不会在完成时加载下一级。

以下是生成对象的代码,我无法弄清楚如何在此处正确显示,因此我使用的是截图。

ObjectGeneratorScript pt 1

ObjectGeneratorScript pt 2

这在大学里有用,但由于某些原因,它不在家,而且由于任务将在2天内完成,所以我很紧张,而且我真的无法看到它不是&#39工作。因为它在大学里工作,所以我没有改变任何东西。

using UnityEngine;
using System.Collections;

public class ObjectGeneratorScript : MonoBehaviour {
public static int points;
float radians(float degrees) {
    return (degrees / 180) * Mathf.PI;
}
void makeObjects(float minDistanceFromOriginal, float maxDistanceFromOrigin, PrimitiveType objType, int number, string tag) {
    //Setting up material variables
    Material cubematerial;
    Material spherematerial;
    Material cylindermaterial;
    float angle;
    float distanceFromOrigin;
    float x;
    int i;
    float z;
    GameObject temp;
    //Telling the code what to load for the material variables
    cubematerial = Resources.Load("cubematerial", typeof(Material)) as Material;
    spherematerial = Resources.Load("spherematerial", typeof(Material)) as Material;
    cylindermaterial = Resources.Load ("cylindermaterial", typeof(Material)) as Material;
    for (i=1; i<=number; i++) {
        distanceFromOrigin = minDistanceFromOriginal + Random.value * (maxDistanceFromOrigin - minDistanceFromOriginal);
        angle = Random.Range (0, 360);
        x = distanceFromOrigin * Mathf.Cos (radians (angle));
        z = distanceFromOrigin * Mathf.Sin (radians (angle));
        temp = GameObject.CreatePrimitive (objType);
        temp.transform.position = new Vector3 (x, 0.5f, z);
        Renderer rend = temp.GetComponent<Renderer>();

        //If functions tell the game to load a material for when a certain object is generated
        if (tag=="Cube"){rend.material = cubematerial;}
        if (tag=="Sphere"){rend.material = spherematerial;}
        if (tag=="Cylinder"){rend.material = cylindermaterial;}
    }
}
// Use this for initialization
void Start () {


    }


// Update is called once per frame
void Update () {
    print (ObjectGeneratorScript.points);
    if (ObjectGeneratorScript.points == 6) 
    {
        Application.LoadLevel ("lvl2");
    }
}

void onCollisionEnter (Collision col)
{
    if (col.gameObject.tag == "cube") {
        Destroy (col.gameObject);
        ObjectGeneratorScript.points = ObjectGeneratorScript.points + 1;
    }
    if (col.gameObject.tag == "sphere") {
        Destroy (col.gameObject);
        ObjectGeneratorScript.points = ObjectGeneratorScript.points + 2;
    }
    if (col.gameObject.tag == "cylinder") {
        Destroy (col.gameObject);
        ObjectGeneratorScript.points = ObjectGeneratorScript.points + 3;
    }
}

}

0 个答案:

没有答案