Ejemplo n.º 1
0
        public BagObject(Vector2 position, GameObject prefab, noteMovementTest aNoteMovement)
        {
            if (noteMovement == null)
            {
                noteMovement = aNoteMovement;
            }

            this.position = position;

            gameObj = Instantiate(prefab);

            gameObj.name = "bagObject";
        }
Ejemplo n.º 2
0
        public Pad(Vector2 startPosition, Vector2 targetPosition, Vector2 endPosition, GameObject padPrefab, GameObject trackEndPrefab, GameObject trackMiddlePrefab, int trackSegments, noteMovementTest aNoteMovement, float angle, int padIndex)
        {
            if (noteMovement == null)
            {
                noteMovement = aNoteMovement;
            }

            StartPosition = startPosition;

            TargetPosition = targetPosition;

            EndPosition = endPosition;

            PadObject = GameObject.Instantiate(padPrefab);

            PadObject.name = "Pad " + padIndex;

            PadObject.transform.position = noteMovement.GetPositionOnBag(TargetPosition);

            PadObject.transform.eulerAngles = noteMovement.GetRotationOnBag(TargetPosition);

            //generate light track

            LightTrack = new GameObject[trackSegments + 1];

            float trackAngle = 240 - (padIndex * 60);

            //track start cap
            LightTrack[0] = Instantiate(trackEndPrefab);
            LightTrack[0].transform.position         = noteMovement.GetPositionOnBag(startPosition);
            LightTrack[0].transform.eulerAngles      = noteMovement.GetRotationOnBag(StartPosition);
            LightTrack[0].transform.localEulerAngles = new Vector3(LightTrack[0].transform.localEulerAngles.x, LightTrack[0].transform.localEulerAngles.y, trackAngle);
            LightTrack[0].transform.parent           = PadObject.transform;

            //track end cap
            LightTrack[trackSegments] = Instantiate(trackEndPrefab);
            LightTrack[trackSegments].transform.position         = noteMovement.GetPositionOnBag(EndPosition);
            LightTrack[trackSegments].transform.eulerAngles      = noteMovement.GetRotationOnBag(EndPosition);
            LightTrack[trackSegments].transform.localEulerAngles = new Vector3(LightTrack[trackSegments].transform.localEulerAngles.x, LightTrack[trackSegments].transform.localEulerAngles.y, trackAngle + 180);
            LightTrack[trackSegments].transform.parent           = PadObject.transform;

            float trackLength = Vector2.Distance(StartPosition, EndPosition);

            for (int i = 1; i < trackSegments; i++)
            {
                LightTrack[i] = Instantiate(trackMiddlePrefab);

                Vector2 pos = Vector2.Lerp(StartPosition, EndPosition, (float)i / trackSegments);

                Debug.Log("lerp: " + (float)i / trackSegments);

                LightTrack[i].transform.position = noteMovement.GetPositionOnBag(pos);

                LightTrack[i].transform.eulerAngles = noteMovement.GetRotationOnBag(pos);

                //LightTrack[i].transform.localScale = new Vector3(1, trackLength / trackSegments, 1);



                LightTrack[i].transform.localEulerAngles = new Vector3(LightTrack[i].transform.localEulerAngles.x, LightTrack[i].transform.localEulerAngles.y, trackAngle);



                //LightTrack[i].transform.right = Vector3.Normalize(LightTrack[i].transform.position - LightTrack[i-1].transform.position);

                //LightTrack[i].transform.eulerAngles = noteMovement.GetPreservedRotationOnBag(pos, LightTrack[i].transform.eulerAngles);

                LightTrack[i].transform.parent = PadObject.transform;
            }
        }