Combreal icon

pegGame01.cs

Combreal | PRO | 03/27/20 01:18:15 PM UTC | 0 ⭐ | 1208 👁️ | Never ⏰ | []
C# |

2.21 KB

|

None

|

0 👍

/

0 👎

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class TokenBehaviour : MonoBehaviour
{
    private Vector3 mOffset;
    private Vector3 startingPosition;
    private Vector3 slotPosition;
    private float mZCoord;
    private bool triggered = false;
    private Rigidbody rBody;
 
    void Start()
    {
        rBody = GetComponent<Rigidbody>();
    }
 
    private void OnMouseDown()
    {
        startingPosition = transform.position;
        transform.position = transform.position + new Vector3(0, 2, 0);
        mZCoord = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
        mOffset = gameObject.transform.position - GetMouseWorldPos();
    }
 
    private void OnMouseUp()
    {
        if (triggered)
        {
            //Debug.Log("Entered volume");
            Debug.Log(slotPosition.ToString("F3"));
            //transform.position = slotPosition;
            rBody.MovePosition(slotPosition);
            rBody.velocity = Vector3.zero;
        }
        else
        {
            transform.position = startingPosition;
            //rBody.MovePosition(startingPosition);
            rBody.velocity = Vector3.zero;
        }
        //rBody.detectCollisions = true;
        //rBody.isKinematic = false;
    }
 
    private Vector3 GetMouseWorldPos()
    {
        Vector3 mousePoint = Input.mousePosition;
        mousePoint.z = mZCoord;
        return Camera.main.ScreenToWorldPoint(mousePoint);
    }
 
    private void OnMouseDrag()
    {
        transform.position = GetMouseWorldPos() + mOffset;
        transform.position = new Vector3(transform.position.x, 4, transform.position.z);
    }
 
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag("Trigger Volume"))
        {
            triggered = true;
            slotPosition = other.gameObject.transform.position;
            //slotPosition.z = -2.69F;
        }
        //rBody.detectCollisions = false;
        //rBody.isKinematic = true;
    }
 
    void OnTriggerExit(Collider other)
    {
        if (other.gameObject.CompareTag("Trigger Volume"))
        {
            triggered = false;
        }
    }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎