Search Unity

[solved] Collision code fails to work

Discussion in 'Scripting' started by AAcat, Nov 29, 2015.

  1. AAcat

    AAcat

    Joined:
    Apr 11, 2015
    Posts:
    19
    The collision code fails to work, above the collision is the transform code (witch works). Can someone help me with this code?
    error code:
    BCE0020: An instance of type 'UnityEngine.Collision' is required to access non static member 'collider'.


    Code (CSharp):
    1. #pragma strict
    2. var SpawnPoint: Transform;
    3. var player : GameObject;
    4. var maxFallDis = -20;
    5. function Update()
    6. {
    7.     if(transform.position.y <= maxFallDis)
    8.     {
    9.        player.transform.position = SpawnPoint.position;
    10.     }
    11. }
    12. //below is where the problem occurs
    13. function OnCollisionStay (collisionInfo: Collision){
    14.     if (Collision.collider.tag == "bad") {
    15.         player.transform.position = SpawnPoint.position;
    16.     }
    17. }
     
  2. flonch

    flonch

    Joined:
    Aug 20, 2014
    Posts:
    63
    What line is causing the error?
    I'm assuming it's line 14, and I'm guessing you want to check the tag for the colliding game object.
    If so, it should be something like this.
    Code (CSharp):
    1. function OnCollisionStay (collisionInfo: Collision){
    2.     if (collisionInfo.gameObject.tag == "bad") {
    3.         player.transform.position = SpawnPoint.position;
    4.     }
    5. }
     
    AAcat likes this.
  3. AAcat

    AAcat

    Joined:
    Apr 11, 2015
    Posts:
    19
    Thank you so much!