当前位置:首页 » 营业展厅 » unity控制物体移动

unity控制物体移动

发布时间: 2021-02-12 06:07:16

1. unity触屏移动物体能不能控制物体移动的速度

通过Slider滑动条,试一试可不可以通过脚本控制速度。

2. U3D如何用脚本控制物体A移动到物体B的相对位置上

通过此方法将本地坐标转化为世界即可;

即B.transform.TransformPoint(localposition);

3. unity3d 用WSAD控制物体移动的代码

public void MoveCubeByInput ()
{
if (Input.GetKey (KeyCode.W)) {
this.gameObject.GetComponent <Transform> ().Translate (Vector3
.forward * Time.deltaTime * 3, Space.World);
}
if (Input.GetKey (KeyCode.A)) {
this.gameObject.GetComponent <Transform> ().Translate
(Vector3.left * Time.deltaTime * 5, Space.World);
}
if (Input.GetKey (KeyCode.S)) {
this.gameObject.GetComponent <Transform> ().Translate
(
Vector3.back * Time.deltaTime * 12, Space.World
);
}
if (Input.GetKey (KeyCode.D)) {
this.gameObject.GetComponent <Transform> ().Translate
(
Vector3.right * Time.deltaTime * 12, Space.World
);
}
if (Input.GetKey (KeyCode.Space)) {
this.gameObject.GetComponent <Transform> ().Translate
(
Vector3.up * Time.deltaTime * 12, Space.World
);
}
if (Input.GetKey (KeyCode.Q)) {
this.gameObject.GetComponent <Transform> ().Rotate (Vector3.up * Time.deltaTime * 50);

}
if (Input.GetKey (KeyCode.E)) {
this.gameObject.GetComponent <Transform> ().Rotate (Vector3.down * Time.deltaTime * 50);

}
然后在void update里面调用

4. unity3d用键盘控制物体移动的工具

自己写个脚本控制就好了

5. unity 怎么让物体自己移动

给物体绑定脚本,脚本名称与物品命名保持一致


然后在脚本的update函数里,改变自身的属性专就属好了...

例如:

voidUpdate()
{
this.transform.Translate(Vector3.left*speed*Time.deltaTime);//transform获取自身,Translate更新(状态),this可省略(刷新速度过快??)
(*Time.deltaTime)防止Update调用过多
}

6. unity3d让物体移动固定距离

1、打开unity3d创建一个“立方体”,作为要移动的物体。

7. unity3d如何控制一个物体移动到指定位置并且立刻停下来

public class PlayerMove : MonoBehaviour
{
public float speed = 5f; //移动时的速度
private Vector3 Player_dir; //主角的坐标

void Update ()
{
Player_dir.x = -Input.GetAxis("Horizontal") * speed * Time.deltaTime; //移动的数据
Player_dir.z = -Input.GetAxis("Vertical") * speed * Time.deltaTime; //移动的Z数据
this.transform.Translate(Player_dir.x, 0, Player_dir.z); //移动的距离
Player_dir = this.GetComponent<Transform>().position; //用来获取当前主角的坐标
Exceed(); //检测是否超出函数
}

void Exceed () //自定义超出函数
{
if (this.transform.position.x > 45) //检测当前主角的X正半轴
{
this.transform.position = new Vector3(45, Player_dir.y, Player_dir.z);
}
else if (this.transform.position.x < -45) //检测当前主角的X负半轴
{
this.transform.position = new Vector3(-45, Player_dir.y, Player_dir.z);
}
else if (this.transform.position.z < -45) //检测当前主角的Z负半轴
{
this.transform.position = new Vector3(Player_dir.x, Player_dir.y, -45);
}
else if (this.transform.position.z > 45) //检测当前主角的Z正半轴
{
this.transform.position = new Vector3(Player_dir.x, Player_dir.y, 45);
}
}
/*注:如果超出对它做出处理,重新指定坐标且这个坐标只能在四象轴范围内。*/
}

8. Unity3D 几个基本动画(控制物体移动,旋转

你可以使用2017新出timeline组件来实现移动和旋转
如果是脚本代码有:tranform.Translate
tranform.Rotate
或者使用回四元数答 Quaternion.LookAt把接收的值赋给transform的rotation
或者使用物理组件
rigidbody.AddForce
rigidbody.AddRelativeTorque

9. unity中,生成实例化后,如何控制它移动

privateGameObject_Player;
privatefloat_Speed=100;

(){
_Player=Instantiate(Resources.Load("实例化物体名"))asGameObject;
}

voidUpdate(){
if(Input.GetKeyDown(KeyCode.W))
{
_Player.transform.Translate(Vector3.forward*_Speed*Time.deltaTime);
}

if(Input.GetKeyDown(KeyCode.S))
{
_Player.transform.Translate(-Vector3.forward*_Speed*Time.deltaTime);
}

if(Input.GetKeyDown(KeyCode.A))
{
_Player.transform.Translate(Vector3.left*_Speed*Time.deltaTime);
}

if(Input.GetKeyDown(KeyCode.D))
{
_Player.transform.Translate(Vector3.right*_Speed*Time.deltaTime);
}
}

10. Unity3d 如何用按钮控制物体前后左右移动

public var target:Transform;
public var moveSpeed=1;

function Start(){

if(!target){
("not set target!");

var go=GameObject.CreatePrimitive( PrimitiveType.Cube);
target=go.transform;
target.position=Camera.main.transform.TransformPoint(Vector3(0,0,5));
target.rotation=Camera.main.transform.rotation;

}

}

function OnGUI(){

var width=60;
var height=20;
GUI.BeginGroup(Rect((Screen.width-width*2)/2,Screen.height-height*3,width*2,height*3));
var moveDirection=Vector3.zero;
if(GUI.Button(Rect(width/2,0,width,height),"forward")){
moveDirection.z=1;
}
if(GUI.Button(Rect(width/2,height*2,width,height),"back")){
moveDirection.z=-1;
}
if(GUI.Button(Rect(0,height,width,height),"left")){
moveDirection.x=-1;
}
if(GUI.Button(Rect(width,height,width,height),"right")){
moveDirection.x=1;
}

if(target){
moveDirection=moveDirection*moveSpeed;
target.position=target.position+ target.rotation*moveDirection;

}
GUI.EndGroup();

}

热点内容
网卡了的原因 发布:2021-03-16 21:18:20 浏览:602
联通客服工作怎么样 发布:2021-03-16 21:17:49 浏览:218
路由器画图 发布:2021-03-16 21:17:21 浏览:403
大网卡收费 发布:2021-03-16 21:16:50 浏览:113
路由器免费送 发布:2021-03-16 21:16:19 浏览:985
孝昌营业厅 发布:2021-03-16 21:15:54 浏览:861
网速增速代码 发布:2021-03-16 21:15:29 浏览:194
怎么黑光纤 发布:2021-03-16 21:14:54 浏览:901
端口增大 发布:2021-03-16 21:14:20 浏览:709
开机没信号是什么原因 发布:2021-03-16 21:13:45 浏览:645