コード例 #1
0
 // Use this for initialization
 void Start()
 {
     preyArray   = new List <PreyScript>();
     visionLimit = 50f;
     preyCheck   = false;
     prey        = null;
 }
コード例 #2
0
ファイル: InitScript.cs プロジェクト: ajmcsurley/3541Lab4
    // Use this for initialization
    void Start()
    {
        preyArray     = new List <PreyScript>();
        predatorArray = new List <PredatorScript>();

        for (int i = 0; i < 9; i++)
        {
            GameObject preyModel = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            PreyScript prey      = preyModel.AddComponent <PreyScript>();
            preyModel.name = "Prey" + i.ToString();
            prey.model     = preyModel;
            prey.model.transform.position = new Vector3(Random.Range(-4.5f, 4.5f), 0.5f, Random.Range(-4.5f, -2.5f));
            prey.position = prey.model.transform.position;
            prey.model.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
            prey.model.GetComponent <MeshRenderer>().material.color    = Color.blue;
            prey.model.GetComponent <MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
            Rigidbody preyRb = preyModel.AddComponent <Rigidbody>();
            preyRb.isKinematic            = false;
            preyRb.useGravity             = false;
            preyRb.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
            preyRb.freezeRotation         = true;
            preyArray.Add(prey);
        }

        for (int i = 0; i < 9; i++)
        {
            GameObject     predatorModel = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            PredatorScript predator      = predatorModel.AddComponent <PredatorScript>();
            predatorModel.name = "Predator" + i.ToString();
            predator.model     = predatorModel;
            predator.model.transform.position = new Vector3(Random.Range(-4.5f, -2.5f), 0, Random.Range(2.5f, 4.5f));
            predator.position = predator.model.transform.position;
            predator.model.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
            predator.model.GetComponent <MeshRenderer>().material.color    = Color.red;
            predator.model.GetComponent <MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
            Rigidbody predatorRb = predatorModel.AddComponent <Rigidbody>();
            predatorRb.isKinematic            = false;
            predatorRb.useGravity             = false;
            predatorRb.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
            predatorRb.freezeRotation         = true;
            predatorArray.Add(predator);
        }

        for (int i = 0; i < 0; i++)
        {
            GameObject boundingSphere = GameObject.CreatePrimitive(PrimitiveType.Cube);
            boundingSphere.name = "BoundingSphere" + i.ToString();
            boundingSphere.transform.position = new Vector3(Random.Range(-3.5f, 3.5f), 0.5f, Random.Range(-3.5f, 3.5f));
            boundingSphere.GetComponent <MeshRenderer>().material.color = Color.black;
            boundingSphere.transform.localScale = new Vector3(0.6f, 0.6f, 0.6f);
            Rigidbody bsRb = boundingSphere.AddComponent <Rigidbody>();
            bsRb.isKinematic            = true;
            bsRb.useGravity             = false;
            bsRb.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
            //bsRb.freezeRotation = true;
            //bsRb.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezePositionZ;
        }
    }
コード例 #3
0
 void FoundPrey(Renderer rend1, Renderer rend2)
 {
     //Debug.Log("FoundPrey");
     if (rend1.bounds.Intersects(rend2.bounds))
     {
         Debug.Log("Intersection");
         model.GetComponent <MeshRenderer>().material.color = Color.yellow;
         int index = preyArray.IndexOf(prey);
         GameObject.Destroy(preyArray[index].model);
         preyArray[index] = null;
         prey             = null;
         //preyCheck = false;
     }
 }
コード例 #4
0
 void CheckForPrey()
 {
     for (int i = 0; i < 9; i++)
     {
         if (preyArray[i] != null)
         {
             Vector3 objPosition   = preyArray[i].transform.position;
             Vector3 agentToVertex = objPosition - position;
             float   angle         = Vector3.Angle(agentToVertex, model.transform.forward);
             if (angle < 5.0f)
             {
                 //Debug.Log("Close");
                 //preyCheck = true;
                 float   step   = 3f * Time.deltaTime;
                 Vector3 newDir = Vector3.RotateTowards(model.transform.forward, agentToVertex, step, 0.0F);
                 model.transform.rotation = Quaternion.LookRotation(newDir);
                 prey = preyArray[i];
                 i    = 9;
                 break;
             }
         }
     }
 }
コード例 #5
0
ファイル: PlayerScript.cs プロジェクト: jeevnayak/amoeba
 void EatPrey(PreyScript prey)
 {
     numPreyEaten++;
     UpdateSize();
     Destroy(prey.gameObject);
 }