您的位置:首页 > 移动开发 > Unity3D

Unity入门操作_ 规律移动_007

2017-08-19 16:31 441 查看


特点是可以绕规定点进行规定长度的往返运动.

方法一:

using UnityEngine;

using System.Collections;

public class Move : MonoBehaviour {

// Update is called once per frame

void Update ()

{

//利用Mathf的pingpong方法达到往复的运动

obj1.transform.position = new Vector3(0,0,-Mathf.PingPong(Time.time,10));

obj2.transform.position = new Vector3(0,0,Mathf.PingPong(Time.time,10));

}

}

方法二:

using UnityEngine;

using System.Collections;

public class Move : MonoBehaviour {

//设置一个标志位 当intFlag 为1的时候表示向Z轴的正方向移动 当intFlag 为-1的时候表示向Z轴的负方向移动

int intFlag = 1;

// Update is called once per frame

void Update ()

{

//当Z轴位置大于10的时候就向负方向移动

if (transform.position.z>=10)

{

intFlag = -1;

}

//当Z轴位置小于0的时候就向正方向移动

if (transform.position.z<0)

{

intFlag = 1;

}

transform.Translate(new Vector3(0, 0, intFlag) * Time.deltaTime * 2);

}

}

public GameObject obj1301;

public GameObject obj1302;

float time;

public Vector3 target1;

public Vector3 target2;

// Use this for initialization

void Start () {

target1 = obj1301.transform.position;

target2 = obj1302.transform.position;

}

// Update is called once per frame

void Update () {

Test13();

}

void Test13()

{

time += Time.deltaTime;

Vector3 v3 = obj1301.transform.position - obj1302.transform.position;

if (time<1)

{

if (v3.sqrMagnitude > 100)

{

obj1301.transform.position = Vector3.MoveTowards(obj1301.transform.position, obj1302.transform.position, 0.1f);

obj1302.transform.position = Vector3.MoveTowards(obj1302.transform.position, obj1301.transform.position, 0.1f);

}

else if (v3.sqrMagnitude != 0)

{

obj1301.transform.position = Vector3.MoveTowards(obj1301.transform.position, obj1302.transform.position, 0.1f);

obj1302.transform.position = Vector3.MoveTowards(obj1302.transform.position, obj1301.transform.position, 0.1f);

}

else

{

time = 1;

}

}

if (time >= 1)

{

if (v3.sqrMagnitude < 100)

{

obj1301.transform.position = Vector3.MoveTowards(obj1301.transform.position, target1, 0.1f);

obj1302.transform.position = Vector3.MoveTowards(obj1302.transform.position, target2, 0.1f);

}

else

{

time = 0;

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity 移动