54 lines
1.3 KiB
C#
54 lines
1.3 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Obi.Samples
|
|
{
|
|
[RequireComponent(typeof(ObiRope))]
|
|
public class CursorController : MonoBehaviour
|
|
{
|
|
public float minLength = 0.1f;
|
|
public float speed = 1;
|
|
|
|
private ObiRopeCursor cursor;
|
|
private ObiRope rope;
|
|
|
|
void OnEnable()
|
|
{
|
|
rope = GetComponent<ObiRope>();
|
|
cursor = GetComponent<ObiRopeCursor>();
|
|
}
|
|
|
|
void Update()
|
|
{
|
|
float change = 0;
|
|
|
|
if (Input.GetKey(KeyCode.W) && cursor != null)
|
|
{
|
|
change -= speed * Time.deltaTime;
|
|
}
|
|
|
|
if (Input.GetKey(KeyCode.S) && cursor != null)
|
|
{
|
|
change += speed * Time.deltaTime;
|
|
}
|
|
|
|
if (rope.restLength + change < minLength)
|
|
change = minLength - rope.restLength;
|
|
|
|
cursor.ChangeLength(change);
|
|
|
|
if (Input.GetKey(KeyCode.A))
|
|
{
|
|
rope.transform.Translate(Vector3.left * Time.deltaTime, Space.World);
|
|
}
|
|
|
|
if (Input.GetKey(KeyCode.D))
|
|
{
|
|
rope.transform.Translate(Vector3.right * Time.deltaTime, Space.World);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|