zoukankan      html  css  js  c++  java
  • 在Unity3D中如何让游戏对象围绕某个特定的对象旋转

    在制作游戏时我们需要让游戏对象围绕某个特定对象旋转,以便使用户更方便观察该对象。我们需要用到transform的RotateAround(vector3 postion,vector3 axis,float angle)函数(注:本文仅用C#)。   下面例子可以让你更好的理解:   游戏界面:一个摄像机Main Camera,一个方体Cube   在Project视图中创建一个新的脚本文件Gamelogic1.cs   代码界面:代码如下

    usingUnityEngine; usingSystem.Collections;
    publicclassGamelogic1:MonoBehaviour
    { 
    public GameObject cube;
    Vector2 p1,p2;//用来记录鼠标的位置,以便计算旋转幅度
    
    // Use this for initialization 
    voidStart(){   originalPosition=transform.position;  
    cube=GameObject.Find("Cube");            
    } 
    // Update is called once per frame 
    void Update(){ 
    if(Input.GetMouseButtonDown(1))
    {   
    p1=newVector2(Input.mousePosition.x,Input.mousePosition.y);//鼠标右键按下时记录鼠标位置p1
    }
    if(Input.GetMouseButton(1)) {  
    p2=newVector2(Input.mousePosition.x,Input.mousePosition.y);//鼠标右键拖动时记录鼠标位置p2 
    //下面开始旋转,仅在水平方向上进行旋转
    float dx=p2.x-p1.x;                     
    transform.RotateAround(cube.transform.position,vector3.up,dx*Time.delTime); } 
    }
    

    PS:您的Unity3D的MonoDevelop可能不支持中文,如出现错误,请将上面示例代码中的中文注释去掉 编辑好代码之后,在视图界面将Gamelogic1.cs拖到摄像机上,以便使代码能执行。这样您就可以在水平方向上按任意角度查看对象了。

    本来转自:http://besideslake.blog.163.com/blog/static/215609032201301411827652/

  • 相关阅读:
    windows服务(installutil.exe)报错。异常来自 HRESULT:0x80131515
    挖掘微信Web版通信的全过程 [转]
    MVC3升级为MVC4
    MFC与C#连接MYSQL乱码问题
    MFC ADO连接Sql Server数据库报无效指针的问题
    PPM解码器
    Verilog case、casez、casex
    任务和函数
    verilog $*命令
    Verilog 带有parameter的模块端口调用
  • 原文地址:https://www.cnblogs.com/dacheng/p/2960459.html
Copyright © 2011-2022 走看看