- Home /
i need help with the on collision script of rigidbody.
using UnityEngine; using System.Collections;
public class NewBehaviourScript1 : MonoBehaviour { public GameObject holeaccess; public NewBehaviourScript holescript; public Rigidbody2D ball; public Vector2 holepos; public int updatestop = 2;
bool check = true;
public Vector2 force = new Vector2(0, 300);
// Use this for initialization
void Start()
{
holeaccess = GameObject.FindGameObjectWithTag("holeimage");
holescript = holeaccess.GetComponent<NewBehaviourScript>();
ball = GetComponent<Rigidbody2D>();
NewBehaviourScript m = GetComponent<NewBehaviourScript>();
}
// Update is called once per frame
void Update()
{
if (check == true)
{
holepos = holescript.pos;
if (Input.GetKeyUp("space"))
{
ball.velocity = Vector2.zero;
ball.AddForce(force);
}
}
}
void OnTriggerEnter(Collider other)
{
ball.position.Set(holepos.x,holepos.y);
check=false;
ball.gravityScale
}
}
In the above script i want to set the ball position to hole postion when they collide. The hole is in other script. Also i want to disable gravity on collision. I have checked istrigger to disable default collision effect. What am i doing wrong here please help. i am not able to disable gravity nor am able to reset ball`s position. Please help.
Answer by tanoshimi · Jun 29, 2016 at 04:45 PM
You appear to have a Rigidbody2D
, not a Rigidbody
.
In which case, you'll want to implement OnTriggerEnter2D(Collider 2D other)
, not OnTriggerEnter
.
Your answer
![](https://koobas.hobune.stream/wayback/20220612083754im_/https://answers.unity.com/themes/thub/images/avi.jpg)