Question by
mlisowyj · Sep 01, 2017 at 07:49 PM ·
scripting problemcontrollerroll a ball
2 player Roll a Ball
I am trying to create a local two player roll a ball game based off of the tutorial. I can not seem to make the two balls roll independently. I setup two different axes in the input manager but that still did not work. Any help on my code below would be appreciated! Thanks!
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public PlayerController Player1;
public PlayerController Player2;
public Text countText;
public Text WinText;
private int count;
private void Start()
{
rb = GetComponent<Rigidbody>();
rb2 = GetComponent<Rigidbody>();
count = 0;
SetCountText();
WinText.text = "";
}
public float speed = 80.0f;
public Rigidbody rb;
public Rigidbody rb2;
//Player 1 Code with aswd keys
void Player1Movement()
{
if (Input.GetKey(KeyCode.A))
{
rb.AddForce(Vector3.left * speed);
}
if (Input.GetKey(KeyCode.D))
{
rb.AddForce(Vector3.right * speed);
}
if (Input.GetKey(KeyCode.W))
{
rb.AddForce(Vector3.forward * speed);
}
if (Input.GetKey(KeyCode.S))
{
rb.AddForce(Vector3.back * speed);
}
}
//Player 2 Code with arrow keys
void Player2Movement()
{
if (Input.GetKey(KeyCode.LeftArrow))
{
rb2.AddForce(Vector3.left * speed);
}
if (Input.GetKey(KeyCode.RightArrow))
{
rb2.AddForce(Vector3.right * speed);
}
if (Input.GetKey(KeyCode.UpArrow))
{
rb2.AddForce(Vector3.forward * speed);
}
if (Input.GetKey(KeyCode.DownArrow))
{
rb2.AddForce(Vector3.back * speed);
}
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("PickUp"))
{
other.gameObject.SetActive(false);
count = count + 1;
SetCountText();
}
}
void SetCountText()
{
countText.text = "Count: " + count.ToString();
if (count >= 18)
{
WinText.text = "You Win!";
}
}
void Update()
{
if (Input.GetKeyDown("space") && GetComponent<Rigidbody>().transform.position.y <= 0.5f)
{
Vector3 jump = new Vector3(0.0f, 275f, 0.0f);
GetComponent<Rigidbody>().AddForce(jump);
}
if (Input.GetKeyDown("/") && GetComponent<Rigidbody>().transform.position.y <= 0.5f)
{
Vector3 jump = new Vector3(0.0f, 275f, 0.0f);
GetComponent<Rigidbody>().AddForce(jump);
}
Player1Movement();
Player2Movement();
}
}
Comment
Your answer
Follow this Question
Related Questions
Mario kart controller physics 0 Answers
roll a ball scripting tutorial problem 0 Answers
Crouch Script Issue 0 Answers