60 lines
1.6 KiB
C#
60 lines
1.6 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class BugMovement : MonoBehaviour
|
|
{
|
|
[SerializeField] private float secondsGoingLeft = 1;
|
|
[SerializeField] private float secondsGoingRight = 1;
|
|
[SerializeField] private float movementSpeed = 10;
|
|
[SerializeField] BoxCollider2D playerCollider;
|
|
|
|
private int leftAccumalator = 0;
|
|
private int rightAccumalator = 0;
|
|
private Rigidbody2D rigidBody;
|
|
|
|
private int framesPerSecond => 60;
|
|
|
|
private void Start()
|
|
{
|
|
Physics2D.IgnoreCollision(GetComponent<BoxCollider2D>(), playerCollider);
|
|
rigidBody = GetComponent<Rigidbody2D>();
|
|
}
|
|
|
|
// Update is called once per frame
|
|
private void Update()
|
|
{
|
|
var totalFramesGoingLeft = framesPerSecond * secondsGoingLeft;
|
|
var totalFramesGoingRight = framesPerSecond * secondsGoingRight;
|
|
|
|
if (leftAccumalator <= totalFramesGoingLeft)
|
|
{
|
|
MoveLeft();
|
|
leftAccumalator++;
|
|
|
|
if (leftAccumalator == totalFramesGoingLeft)
|
|
rightAccumalator = 0;
|
|
}
|
|
else if (rightAccumalator <= totalFramesGoingRight)
|
|
{
|
|
MoveRight();
|
|
rightAccumalator++;
|
|
|
|
if (rightAccumalator == totalFramesGoingRight)
|
|
leftAccumalator = 0;
|
|
}
|
|
}
|
|
|
|
private void MoveLeft()
|
|
{
|
|
var actualSpeed = movementSpeed * -1;
|
|
rigidBody.velocity = new Vector2(actualSpeed, rigidBody.velocity.y);
|
|
}
|
|
|
|
private void MoveRight()
|
|
{
|
|
var actualSpeed = movementSpeed;
|
|
rigidBody.velocity = new Vector2(actualSpeed, rigidBody.velocity.y);
|
|
}
|
|
}
|