- Home /
This question was
closed Mar 07, 2018 at 07:57 AM by
chinjl for the following reason:
Other
slide an object by using mouse.
when i try the game and left click the mouse, it only come out a dot, not forming a complete slice and the dot is falling down, the y axis keep decreasing.
example game: fruit ninja.
public GameObject bladeTrailPrefab;
public float minCuttingVelocity = .001f;
bool isCutting = false;
Vector2 previousPosition;
GameObject currentBladeTrail;
Rigidbody2D rb;
Camera cam;
CircleCollider2D circleCollider;
void Start ()
{
cam = Camera.main;
rb = GetComponent<Rigidbody2D>();
circleCollider = GetComponent<CircleCollider2D>();
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0))
{
StartCutting();
} else if (Input.GetMouseButtonUp(0))
{
StopCutting();
}
if (isCutting)
{
UpdateCut();
}
}
void UpdateCut ()
{
Vector2 newPosition = cam.ScreenToWorldPoint(Input.mousePosition);
rb.position = newPosition;
float velocity = (newPosition - previousPosition).magnitude * Time.deltaTime;
if (velocity < minCuttingVelocity)
{
circleCollider.enabled = true;
} else
{
circleCollider.enabled = false;
}
previousPosition = newPosition;
}
void StartCutting ()
{
isCutting = true;
currentBladeTrail = Instantiate(bladeTrailPrefab, transform);
previousPosition = cam.ScreenToWorldPoint(Input.mousePosition);
circleCollider.enabled = false;
}
void StopCutting ()
{
isCutting = false;
currentBladeTrail.transform.SetParent(null);
Destroy(currentBladeTrail, 2f);
circleCollider.enabled = false;
}
Comment