常用代码

物体拖拽最简实现

复制代码
using UnityEngine;

[RequireComponent(typeof(Collider))]
public class CardTouch : MonoBehaviour
{
    private void OnMouseDrag() {
        var mousePos = Input.mousePosition;
        mousePos.z = 10; // select distance = 10 units from the camera
        transform.position = Camera.main.ScreenToWorldPoint(mousePos);
    }
}
复制代码

 任意位置跟随

复制代码
    private Vector3 screenPoint;
    private Vector3 offset;
    private Camera camera;

    private Camera CameraMain {
        get {
            if (camera == null) {
                camera = Camera.main;
            }

            return camera;
        }
    }

    void OnMouseDown() {
        Vector3 pos = transform.position;
        screenPoint = CameraMain.WorldToScreenPoint(pos);
        offset = pos - CameraMain.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 = CameraMain.ScreenToWorldPoint(curScreenPoint) + offset;
        transform.position = curPosition;
    }
复制代码

 

按钮按下时触发事件,而非抬起

1.添加Event Trigger组件

2.Code

    public EventTrigger et;
    
    void Start() {
        EventTrigger.Entry entry = new EventTrigger.Entry ();
        entry.eventID = EventTriggerType.PointerDown;
        entry.callback.AddListener(click);
        et.triggers.Add(entry);
    }

 3.   PointerDown  可以改成别的

 

Animation跳转最后一帧

animation.Rewind();
animation.Play();
animation.Sample();
animation.Stop();

 

posted @   三页菌  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2018-02-03 unity摄像机移动滑动
点击右上角即可分享
微信分享提示