常用代码

物体拖拽最简实现

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 @ 2023-02-03 11:09  三页菌  阅读(30)  评论(0编辑  收藏  举报