Beispiel #1
0
    public void ExecuteInstantaniousForce(KeyCode forceKeyCode)
    {
        if (CanExertMotorForce())
        {
            if (acceptedInstantaniousGroundedForceInputs.ContainsKey(forceKeyCode))
            {
                HumanoidComponentExclusiveAdjustableForceInformationWithKnownObject info = acceptedInstantaniousGroundedForceInputs[forceKeyCode];

                if (info.GetCurrentCooldown() <= 0)
                {
                    info.SetCurrentCooldown(info.applyCooldown);
                    if (info.animationFlag != "")
                    {
                        humanoidAnimator.SetTrigger(info.animationFlag);
                    }
                    CustomTraditionalForce force = new CustomTraditionalForce(affectedForceObject.transform.localToWorldMatrix * info.v);
                    force.ApplyForce(affectedForceObject, info.isPure, info.infiniteTimeForce ? float.NegativeInfinity : info.applyTime);
                }
            }
        }
        else
        {
            if (acceptedInstantaniousLevitatingForceInputs.ContainsKey(forceKeyCode))
            {
                HumanoidComponentExclusiveAdjustableForceInformationWithKnownObject info = acceptedInstantaniousLevitatingForceInputs[forceKeyCode];

                if (info.GetCurrentCooldown() <= 0)
                {
                    info.SetCurrentCooldown(info.applyCooldown);
                    if (info.animationFlag != "")
                    {
                        humanoidAnimator.SetTrigger(info.animationFlag);
                    }
                    CustomTraditionalForce force = new CustomTraditionalForce(affectedForceObject.transform.localToWorldMatrix * info.v);
                    force.ApplyForce(affectedForceObject, info.isPure, info.infiniteTimeForce ? float.NegativeInfinity : info.applyTime);
                }
            }
        }
    }
Beispiel #2
0
    //Shoots the gun
    //Plays muzzleFlash animation and uses Raycast to hit object
    void Shoot()
    {
        muzzleFlash.Play();

        GameObject bulletObj;

        bulletObj = Instantiate(bullet, fpsCam.transform.position + fpsCam.transform.forward * 0.05f, fpsCam.transform.rotation);
        bulletObj.transform.forward = fpsCam.transform.forward;

        CustomTraditionalForce force = bulletObj.AddComponent <CustomTraditionalForce>();

        force.Force = fpsCam.transform.forward * bulletStartingForceMagnitude;

        force.ApplyForce(bulletObj.GetComponent <ForceObject>(), true, bulletForceApplicationTime);



        //RaycastHit hit;
        //var ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        //if (Physics.Raycast(ray, out hit, range))
        //{
        //    Debug.Log(hit.transform.name);
        //    // generates a bullet

        //    // the death hit
        //    // if (hit.rigidbody != null) {
        //    //     hit.rigidbody.AddForceAtPosition(ray.direction * power, hit.point);
        //    // }

        //    Target target = hit.transform.GetComponent<Target>();
        //    if (target != null) //If target is hit, turn damage on and send bool to GetHit under Target
        //    {
        //        damage = true;
        //        target.GetHit(damage);
        //    }
        //}
    }