Exemple #1
0
 // Use this for initialization
 void Awake()
 {
     setYAxisLevel = transform.position.y;
     interactions = gameObject.GetComponent<InteractiveObject> ();
     status = critterStates.free;
     forthrow = GetComponent<Rigidbody>();
 }
Exemple #2
0
    // Update is called once per frame
    void Update()
    {
        if (gManager == null) {
            gManager=GameManager.Instance();}
        if (status == critterStates.free) {

            transform.position += Vector3.Normalize(walkDirection)*walkspeed*Time.deltaTime;
        }
        //critter moves on its own and gets grabbe
        if (status == critterStates.free && interactions.getIsGrabbed()) {
            status=critterStates.grabbed;
            lastposition=transform.position;
            originalGrabPosition= lastposition;
            howfaralong=0;
        }
        //grabbed and is being held
        if (status==critterStates.grabbed&& interactions.getIsGrabbed()) {

            howfaralong+=normalizeThrowPositionRate*Time.deltaTime;
            lastposition = transform.position;

        }

        //grabbed and let go (thrown)
        if(!interactions.getIsGrabbed()&&status==critterStates.grabbed)
        {
            status=critterStates.thrown;
            interactions.isDraggable=false;
            forthrow.isKinematic=false;
            forthrow.useGravity=true;

            Debug.Log ((transform.position-lastposition)/(Time.fixedDeltaTime)+ "  "+ howfaralong);
            forthrow.AddForce(Vector3.Normalize((interactions.getCursorPosition()-lastposition)/(Time.fixedDeltaTime))*Mathf.Pow(Vector3.Magnitude((interactions.getCursorPosition()-lastposition)/(Time.fixedDeltaTime)), exponentialThrowScaling));

        }

        //thrown and fell back to its original level.
        if (status == critterStates.thrown)
        {
            if(transform.position.y <=setYAxisLevel)
            {
                forthrow.isKinematic=true;
                forthrow.useGravity=false;
                transform.position=new Vector3(transform.position.x, setYAxisLevel, transform.position.z);
                status=critterStates.free;
                forthrow.velocity=Vector3.zero;
                interactions.isDraggable=true;

            }
        }
    }