static public int IsSleeping(IntPtr l)
 {
     try {
         UnityEngine.Rigidbody self = (UnityEngine.Rigidbody)checkSelf(l);
         var ret = self.IsSleeping();
         pushValue(l, ret);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
 static public int IsSleeping(IntPtr l)
 {
     try{
         UnityEngine.Rigidbody self = (UnityEngine.Rigidbody)checkSelf(l);
         System.Boolean        ret  = self.IsSleeping();
         pushValue(l, ret);
         return(1);
     }
     catch (Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return(0);
     }
 }
Beispiel #3
0
 static int IsSleeping(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         UnityEngine.Rigidbody obj = (UnityEngine.Rigidbody)ToLua.CheckObject(L, 1, typeof(UnityEngine.Rigidbody));
         bool o = obj.IsSleeping();
         LuaDLL.lua_pushboolean(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Beispiel #4
0
    protected virtual void Awake()
    {
        //grab component references
        _transform = transform;
        _gameObject = gameObject;
        _renderer = renderer;
        _collider = collider;
        _rigidbody = rigidbody;
        _instanceID = gameObject.GetInstanceID();

        //calculate the update interval (assuming ideal target of 60 fps)
        _updateInterval = UpdatesPerSecond / 60f;

        //check conditions
        if (_rigidbody != null && !RigidBodyAwakeOnStart) { _rigidbody.IsSleeping(); }
        if (!GameObjectActiveOnStart) { _gameObject.active = false; }

        //start coroutines
        if (_renderer != null) { StartCoroutine( CheckIsHidden() ); }
    }
Beispiel #5
0
    void ThrowOrStoreItem()
    {
        Vector3 resultingDirection = (item.transform.position - previousItemPosition);

        // To track if handmovement is quick enough that the player wants to throw
        float maxThrowForce = Mathf.Abs(Mathf.Max(resultingDirection.x, resultingDirection.y, resultingDirection.z)) * 10.0f;

        //Debug.Log(maxThrowForce);

        if(inventory.isItemTouchingInventory(item.gameObject) && maxThrowForce < 0.2f)
        {
            inventory.storeItem(item, itemIsUsable, itemParent);
        }
        else
        {
            //print ("ThrowItem() called!");
            itemRigid = item.GetComponent<Rigidbody>();
            itemRigid.isKinematic = false;
            if(itemRigid.IsSleeping())
            {
                itemRigid.WakeUp();
            }
            itemRigid.AddForce(resultingDirection * 1/Time.deltaTime * 1.4f,ForceMode.VelocityChange);
            /*
            if(maxThrowForce < .3f)
            {
                itemRigid.AddForce(resultingDirection * 1/Time.deltaTime,ForceMode.VelocityChange);
            }
            else
            {
                itemRigid.AddForce(resultingDirection * 1/Time.deltaTime * 2.0f,ForceMode.VelocityChange);
            }
            */
            //print ("Added Force!");

            Collider[] colliders = item.GetComponents<Collider>();
            for(int i=0; i<colliders.Length; i++)
            {
                colliders[i].isTrigger = false;
            }

            if(itemParent != null)
            {
                if(!itemParent.Equals(hand.transform) || !item.transform.parent.name.Contains("unterarm"))
                {
                    //print("Parent ist not hand");
                    item.transform.parent = itemParent;
                }
            }
            else
            {
                item.transform.parent =  null;
            }

            if (itemIsUsable)
            {
                item.layer = 14;
            }
            else
            {
                item.layer = 9;
            }
            CheckItemUnderWorld();
        }

        if(itemIsUsable)
        {
            itemClass.OnDeequip();
            itemClass = null;
        }

        item = null;
        itemIsInHand = false;
        itemIsUsable = false;
    }