Beispiel #1
0
 private void Handle(Vector3 contactPoint, TactSender tactSender)
 {
     if (tactSender != null)
     {
         var targetCollider = GetComponent <Collider>();
         tactSender.Play(PositionTag, contactPoint, targetCollider);
     }
 }
Beispiel #2
0
        void Shoot()
        {
            TactSenderForRayCast.Play(PositionTag.LeftArm);
            TactSenderForRayCast.Play(PositionTag.RightArm);
            if (IsRaycastingShooting)
            {
                var        targetPosition = bulletPoint.position;
                var        direction      = bulletPoint.forward;
                var        length         = 10f;
                Ray        ray            = new Ray(targetPosition, direction);
                RaycastHit raycastHit;
                Vector3    endPosition = targetPosition + (length * direction);

                if (Physics.Raycast(ray, out raycastHit, length))
                {
                    var detect = raycastHit.collider.gameObject.GetComponent <TactReceiver>();
                    var pos    = PositionTag.Default;
                    if (detect != null)
                    {
                        pos = detect.PositionTag;
                    }
                    TactSenderForRayCast.Play(pos, raycastHit);
                    endPosition = raycastHit.point;
                    rayShootEffectPrefab.transform.position = endPosition;
                    var go = Instantiate(rayShootEffectPrefab, endPosition, Quaternion.identity);
                    Destroy(go, 0.5f);
                }
            }
            else
            {
                var bullet = (GameObject)Instantiate(bulletPrefab, bulletPoint.transform.position, bulletPoint.transform.rotation);
                bullet.GetComponent <Rigidbody>().velocity = bulletPoint.forward * 10f;

                Destroy(bullet, 5f);
            }
        }