我正在用 C# 用 unity3d 制作游戏
我希望能够通过用鼠标左键单击它来使对象变小,用鼠标右键单击它来使对象变大。这段代码的问题是: 1. 它不允许缩小,除非它被放大 2. 如果有多个 obj,一旦它们被点击,它们都会受到影响。我尝试了几种不同的方法来做到这一点,我猜这与 resize bool 有关。非常感谢您的帮助
using UnityEngine;
using System.Collections;
public class Scale : MonoBehaviour
{
public GameObject obj;
private float targetScale;
public float maxScale = 10.0f;
public float minScale = 2.0f;
public float shrinkSpeed = 1.0f;
private bool resizing = false;
void OnMouseDown()
{
resizing = true;
}
void Update()
{
if (resizing)
{
if (Input.GetMouseButtonDown(1))
{
targetScale = maxScale;
}
if (Input.GetMouseButtonDown(0))
{
targetScale = minScale;
}
obj.transform.localScale = Vector3.Lerp(obj.transform.localScale, new Vector3(targetScale, targetScale, targetScale), Time.deltaTime*shrinkSpeed);
Debug.Log(obj.transform.localScale);
if (obj.transform.localScale.x == targetScale)
{
resizing = false;
Debug.Log(resizing);
}
}
}
}