zoukankan      html  css  js  c++  java
  • Unity 物体在屏幕内跟随鼠标移动

    由于是在屏幕内跟随鼠标移动,我们知道,在屏幕上鼠标位置的Z坐标的值为0,所以我们要将物体的位置坐标Z赋值给鼠标的Z;

     1 using UnityEngine;
     2 using System.Collections;
     3 
     4 public class Follow: MonoBehaviour {
     5         Vector3 world;//物体要移动到的位置 (世界坐标系)
     6         float moveSpeed=0;//物体移动速度
     7 
     8         void Update(){
     9                 Vector3 targetposition=Camera.main.WorldToScreenPoint(this.transform.position);//将物体的世界坐标转换为屏幕坐标
    10                 
    11                  Vector3 mouseposition=Input.mousePosition;//鼠标在屏幕上的位置坐标
    12 
    13                  if(Input.GetMouseButton(0)){
    14                          mouseposition.z=targetposition.z;
    15                          
    16                           //world=Camera.main.ScreenToWorldPoint(mouse position);//这种情况下 会有穿透现象
    17 
    18                           world.x=Camera.main.ScreenToWorldPoint(mouse position).x;
    19                           world.z=Camera.main.ScreenToWorldPoint(mouse position).z;
    20                           world.y=this.transform.postion.y;
    21 
    22                           moveSpeed=3;
    23                  }
    24 
    25                  if(this.transform.position==world){//如果物体移动到了鼠标指定的位置 将移动速度设为0
    26                            moveSpeed=0;
    27                   }
    28 
    29                   this.transform.LookAt(world);//物体朝向鼠标对应的位置 (此时的位置为世界坐标系)
    30                    this.transform.Translate(Vector3.forward*moveSpeed*Time.deltaTime);
    31      }
    32 }    
  • 相关阅读:
    数据放在服务端和客户端的利与弊
    python异步I/O并发
    view
    mysql千万或者上亿的数据怎么设计数据库
    Django(一)
    JQuery
    BOM与DOM
    JavaScript
    CSS(二)
    CSS介绍
  • 原文地址:https://www.cnblogs.com/He-Jing/p/3799394.html
Copyright © 2011-2022 走看看