C# 在Unity中单击并拖动时在另一个对象上触发脚本
我正在做一个2D项目,我添加了一个精灵作为拍摄按钮。这个按钮很好用。附加的脚本是:(我在精灵中添加了一个长方体碰撞器) 然后我添加了一个十字线,以便能够计算出瞄准的方向。下面是单击并拖动对象的脚本。在此对象上圈出二维坐标系C# 在Unity中单击并拖动时在另一个对象上触发脚本,c#,unity3d,unity3d-2dtools,unity5,C#,Unity3d,Unity3d 2dtools,Unity5,我正在做一个2D项目,我添加了一个精灵作为拍摄按钮。这个按钮很好用。附加的脚本是:(我在精灵中添加了一个长方体碰撞器) 然后我添加了一个十字线,以便能够计算出瞄准的方向。下面是单击并拖动对象的脚本。在此对象上圈出二维坐标系 using UnityEngine; using System.Collections; [RequireComponent(typeof(MeshCollider))] public class Aim : MonoBehaviour { private V
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(MeshCollider))]
public class Aim : MonoBehaviour
{
private Vector3 screenPoint;
private Vector3 offset;
void OnMouseDown()
{
screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position);
offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}
void OnMouseDrag()
{
Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint)+offset;
this.transform.position = curPosition;
}
}
当我添加这个瞄准脚本并点击十字线拖动它时,射击脚本就会消失
我对unity很陌生,所以我假设它很简单。谢谢您的帮助。我将单击脚本中的更新功能更改为
void Update () {
if(Input.GetMouseButtonDown(0)){
Vector2 mousePosition = new Vector2();
mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if(this.collider2D.OverlapPoint(mousePosition)){
LoadScript();
}
}
因此,它仅在单击特定对象时触发。也许有一种更干净的方法,但这很有效。我将单击脚本中的更新功能更改为
void Update () {
if(Input.GetMouseButtonDown(0)){
Vector2 mousePosition = new Vector2();
mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if(this.collider2D.OverlapPoint(mousePosition)){
LoadScript();
}
}
因此,它仅在单击特定对象时触发。也许有一个更干净的方法,但这是有效的