Interhaptics SDK for Unity 1.6
Loading...
Searching...
No Matches
ObjectTransform.cs
Go to the documentation of this file.
1/* ​
2* Copyright (c) 2023 Go Touch VR SAS. All rights reserved. ​
3* ​
4*/
5
6using UnityEngine;
7
9{
10 public class ObjectTransform : MonoBehaviour
11 {
12 public float speed = 1f;
13 public float leftLimit = -1.5f;
14 public float rightLimit = 1.5f;
15 public bool moveAtStart = false;
16 public bool buttonPressed = false;
17
18 private float targetX;
19 private bool movingRight = true;
20 private Vector3 originalPosition;
21 private bool returningToOrigin = false;
22
23 private void Start()
24 {
25 originalPosition = transform.position;
26 targetX = rightLimit;
27 }
28
29 private void Update()
30 {
32 {
34 }
35 }
36
37 public void ResetPosition()
38 {
39 transform.position = originalPosition;
40 targetX = rightLimit;
41 movingRight = true;
42 returningToOrigin = false;
43 buttonPressed = false;
44 }
45
47 {
48 transform.position = new Vector3(
49 Mathf.MoveTowards(transform.position.x, targetX, speed * Time.deltaTime),
50 transform.position.y,
51 transform.position.z
52 );
53
54 if (Mathf.Approximately(transform.position.x, targetX))
55 {
56 if (returningToOrigin)
57 {
58 moveAtStart = false; // Stop moving after returning to origin if started due to moveAtStart
59 ResetPosition(); // Reset position to origin
60 return; // Exit early as we've returned to the origin
61 }
62
63 if (movingRight)
64 {
65 targetX = leftLimit;
66 }
67 else
68 {
69 targetX = originalPosition.x;
70 returningToOrigin = true;
71 }
72 movingRight = !movingRight;
73 }
74 }
75 }
76}
77