首页 > 解决方案 > 我希望用鼠标触摸球对象后稍微缩小

问题描述

我希望对象在 Unity 中触摸后缩小。我希望球对象在用鼠标触摸后略微缩小。我怎样才能做到这一点?在此先感谢您的帮助。

using UnityEngine;
using System.Collections;
public class Point : MonoBehaviour
{
    public float speed = 10f;
    private Vector3 targetPosition;
    private bool isMoving;
    public GameObject clickAnimation;

    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonUp(0))
        {


            targetPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            targetPosition.z = transform.position.z;
            if (isMoving == false)
            {
                isMoving = true;
                Instantiate(clickAnimation, targetPosition, Quaternion.identity);
            }
        }
        if (isMoving == true)
        {

            transform.position = Vector3.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
        }
        if (targetPosition == transform.position)
        {
            isMoving = false;
            Destroy(GameObject.Find("Click Animation(Clone)"));

        }
    }
}

标签: c#unity3d

解决方案


所以你有多种方案来实现这一点,这取决于你最终需要什么。假设您要缩小鼠标单击的任何对象。

您希望每次单击时都进行光线投射,并获取被击中的游戏对象。为此,您可以使用 RaycastHit 并使用 获取游戏对象,您可以在此处找到RaycastHit.transform.gameObject实现和 Unity 官方文档。

从 raycast 命中检索游戏对象后,您可以使用setScaletransform 方法缩小它。认为您可以使用 Vector3 类运算符重载来创建新的比例向量。

如果要在单击期间缩小对象,则必须使用Time.deltaTime“创建”缩小动画。


推荐阅读