// Update is called once per frame void Update() { Vector3 inputAxis = Vector3.zero; inputAxis.x = Input.GetAxis("Horizontal"); inputAxis.z = Input.GetAxis("Vertical"); target.Roll(inputAxis); }
void UpdateRollable(Vector3 moveDir) { if (!rollable) { return; } if (rollable.IsRolling() == false) { startRollPoint = rollable.transform.position; startRollPoint = new Vector3( startRollPoint.x = (int)((startRollPoint.x + (startRollPoint.x >= 0 ? 0.5f : -0.5f)) / 1.0f) * 1.0f, startRollPoint.y = (int)((startRollPoint.y + (startRollPoint.y >= 0 ? 0.5f : -0.5f)) / 1.0f) * 1.0f, startRollPoint.z = (int)((startRollPoint.z + (startRollPoint.z >= 0 ? 0.5f : -0.5f)) / 1.0f) * 1.0f); Vector3 playerPos = transform.position; playerPos.y = startRollPoint.y; playerPos = new Vector3( playerPos.x = (int)((playerPos.x + (playerPos.x >= 0 ? 0.5f : -0.5f)) / 1.0f) * 1.0f, playerPos.y = (int)((playerPos.y + (playerPos.y >= 0 ? 0.5f : -0.5f)) / 1.0f) * 1.0f, playerPos.z = (int)((playerPos.z + (playerPos.z >= 0 ? 0.5f : -0.5f)) / 1.0f) * 1.0f); Vector3 dirToTarget = playerPos - startRollPoint; EDirection rollDir = dirToTarget.ToDir(); endRollPoint = playerPos; } if (rollable.IsRolling() == false) { rollable.Roll(endRollPoint - startRollPoint); } rollable.ForceUpdateCall(); KeepInBlockBounds(); }