示例#1
0
文件: PropDeleter.cs 项目: ldlac/UMod
 public override void HandleKeyDown(ToolGun toolGun, KeyCode button, Ray eyeRay)
 {
     if (Physics.Raycast(eyeRay, out RaycastHit hit))
     {
         if (hit.rigidbody)
         {
             var prop = hit.rigidbody.GetComponentInParent <PropRoot>();
             if (!prop)
             {
                 return;
             }
             var projectile = GameObject.CreatePrimitive(PrimitiveType.Sphere);
             projectile.transform.localScale = Vector3.one * .1f;
             _destroyOnDisable.Add(projectile);
             _destroyOnDisable.Add(hit.transform.gameObject);
             StartCoroutine(toolGun.ViewModel.FireProjectile(projectile, hit.transform, 40f, () =>
             {
                 if (!prop.transform)
                 {
                     return;
                 }
                 LeanTween.scale(prop.transform.gameObject, prop.transform.localScale * 1.25f, .05f)
                 .setOnComplete(() =>
                 {
                     LeanTween.scale(prop.transform.gameObject, Vector3.zero, .15f)
                     .setOnComplete(() =>
                     {
                         GameObject.Destroy(prop.gameObject);
                     });
                 });
             }));
         }
     }
 }
示例#2
0
    public override void HandleKeyDown(ToolGun toolGun, KeyCode button, Ray eyeRay)
    {
        if (!Physics.Raycast(eyeRay, out RaycastHit hit) ||
            !hit.rigidbody)
        {
            return;
        }

        var projectile = GameObject.CreatePrimitive(PrimitiveType.Sphere);

        projectile.transform.localScale = Vector3.one * .15f;

        if (button == KeyCode.Mouse0)
        {
            projectile.GetComponent <Renderer>().material.color = Color.green;

            if (_firstRigidbody && hit.rigidbody != _firstRigidbody)
            {
                Weld(_firstRigidbody, hit.rigidbody, _firstAnchor, hit.point);
                _firstRigidbody = null;
            }
            else
            {
                _firstAnchor    = hit.point;
                _firstRigidbody = hit.rigidbody;
            }
        }
        else if (button == KeyCode.Mouse1)
        {
            projectile.GetComponent <Renderer>().material.color = Color.red;
            _firstRigidbody = null;
            Unweld(hit.rigidbody);
        }

        StartCoroutine(toolGun.ViewModel.FireProjectile(projectile, hit.transform, 40f, () =>
        {
            if (!hit.transform)
            {
                return;
            }
            var originalScale = hit.transform.localScale;
            LeanTween.scale(hit.transform.gameObject, originalScale * 1.25f, .05f)
            .setOnComplete(() =>
            {
                LeanTween.scale(hit.transform.gameObject, originalScale, .15f);
            });
        }));
    }
示例#3
0
文件: Destructor.cs 项目: ldlac/UMod
 public override void HandleKeyDown(ToolGun toolGun, KeyCode button, Ray eyeRay)
 {
     if (Physics.Raycast(eyeRay, out RaycastHit hit) &&
         hit.rigidbody &&
         !hit.rigidbody.CompareTag("Player"))
     {
         var mf = hit.rigidbody.GetComponent <MeshFilter>();
         if (!mf)
         {
             return;
         }
         var projectile = GameObject.CreatePrimitive(PrimitiveType.Cube);
         projectile.GetComponent <Renderer>().material.color = Color.red;
         projectile.transform.localScale = Vector3.one * .15f;
         StartCoroutine(toolGun.ViewModel.FireProjectile(projectile, hit.transform, 35f, () =>
         {
             Explode(hit.transform);
         }));
     }
 }
示例#4
0
文件: ToolGunHud.cs 项目: ldlac/UMod
    private void Start()
    {
        _toolTemplate.gameObject.SetActive(false);

        if (!_toolGun)
        {
            _toolGun = GameObject.FindObjectOfType <ToolGun>();
        }

        _toolGun.OnToolChanged.AddListener((newTool) =>
        {
            if (_visibleTimer <= 0)
            {
                LeanTween.scaleX(Root, 1.25f, .15f)
                .setOnComplete(() =>
                {
                    LeanTween.scaleX(Root, 1f, .05f);
                });
            }
            _visibleTimer = _visibleDuration;
        });

        Build();
    }
示例#5
0
文件: ToolGunTool.cs 项目: ldlac/UMod
 public virtual void HandleKeyUp(ToolGun toolGun, KeyCode button, Ray eyeRay)
 {
 }