嗨我正在努力学习统一,我已经通过一个代码,我需要对象在达到任何一方的极限时上下移动并保持重复。但它只是上升轴只有人能告诉我这里有什么问题吗?
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;
}
}
}
}
答案 0 :(得分:0)
首先,你选择错误的gameObject,你选择自己的对象而不是接触的对象。
GetComponent&lt;&gt;()将获取脚本附加到的gameObject。 相反,使用你的碰撞参数,它就是触动你的对象。
这是正确的脚本和简化版
void OnCollisionEnter2D (Collision2D collider)
{
if (collider.gameObject.tag == "wall") {
turn = !turn;
}
}