- Home /
Question by
missD · Mar 25, 2014 at 06:54 PM ·
c#flickering
Flick marble
hello, I have a problem with my code to flick the marble in my game. The marble supposed to go forward according to the touch but it just going down and jumping. These are the codes. Anybody knows? please help me.. Thank you.
private RaycastHit hit;
public GameObject ball;
public Camera cam;
public float fullWidth = 256;
private float thePower;
public bool increasing = false;
private bool shooting = false;
public float barSpeed = 25;
private LineRenderer line;
//public float hitDistance = 0.0;
void Start(){
// line = GetComponent(LineRenderer);
// line.SetColors(Color.green, Color.green);
// line.SetWidth(0.1, 0.1);
// line.SetVertexCount(2);
if (!cam)
{
Destroy(this);
}
}
// Update is called once per frame
void Update () {
/*var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
Vector3 mouse_pos = Input.mousePosition;
Vector3 object_pos = Camera.main.WorldToScreenPoint(this.transform.position);
mouse_pos.x = mouse_pos.x - object_pos.x;
mouse_pos.y = mouse_pos.y - object_pos.y;
if (Physics.Raycast(ray, out hit))
{
Debug.Log("hit something");
Debug.DrawRay (ray.origin, ray.direction * 10, Color.yellow);
}
if (Input.GetMouseButton(0))
{
//Vector3 v3 = new Vector3(mouse_pos.x, 0.0f, mouse_pos.y);
ball.rigidbody.AddForce(mouse_pos);
}
*/
Vector3 mouse_pos = Input.mousePosition;
var ray = cam.ScreenPointToRay(Input.mousePosition);
Vector3 position = ray.GetPoint(25.0f);
position.y = transform.position.y;
transform.LookAt(position);
if(Physics.Raycast(ray, out hit))
{
Debug.DrawLine(ray.origin, ray.direction * 10 ,Color.green);
}
if (!shooting)
{
if (Input.GetMouseButton(0))
{
increasing = true;
//rigidbody.AddForce(position);
}
else if (Input.GetMouseButtonUp(0))
{
rigidbody.AddForce(position * thePower *5);
increasing = false;
}
}
Rect pos = guiTexture.pixelInset;
pos.xMax = guiTexture.pixelInset.xMin + fullWidth*thePower/fullWidth;
guiTexture.pixelInset = pos;
if(increasing)
{
thePower += Time.deltaTime * barSpeed;
thePower = Mathf.Clamp (thePower, 0, fullWidth);
}
else
{
thePower = 0;
}
}
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220613141136im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
TextMesh isn't updating itself. 0 Answers
(C#) GUI Buttons not working 1 Answer
[Answered]Rigid body Movement C# 0 Answers