Unity对象仅在统一播放预览中以一个方向移动

时间:2017-11-11 12:09:54

标签: c# unity5

嗨我正在努力学习统一,我已经通过一个代码,我需要对象在达到任何一方的极限时上下移动并保持重复。但它只是上升轴只有人能告诉我这里有什么问题吗?

enter image description here

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class shooter_movement : MonoBehaviour {

public float shootspeed = 2;
public bool turn = false;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
    if (!turn) 
    {
        transform.Translate (0, 2 * Time.deltaTime, 0);
    } 
    else
    {
        transform.Translate (0, -2 * Time.deltaTime, 0);
    }
}

void OncollisionEnter2D (Collision2D Collider){

    Debug.Log ("Collision Works");
    if (GetComponent<Collider>().gameObject.tag == "wall") {

        if (turn) {

            turn = false;
        } 
        else {

            turn = true;
        }
    }
}

}

1 个答案:

答案 0 :(得分:0)

首先,你选择错误的gameObject,你选择自己的对象而不是接触的对象。

GetComponent&lt;&gt;()将获取脚本附加到的gameObject。 相反,使用你的碰撞参数,它就是触动你的对象。

这是正确的脚本和简化版

void OnCollisionEnter2D (Collision2D collider)
{
    if (collider.gameObject.tag == "wall") {
        turn = !turn;
    }
}