UNITY C# - 如何让2个对象始终具有相同的y值,但是第二个-0.5单位

时间:2018-04-16 16:17:44

标签: c# unity3d

我昨天问了一个关于如何让2个物体具有相同y值的问题。它工作但是,我现在发布了我需要第二个立方体相同的y值BUT,比第一个低-0.5个单位。我的原始立方体被称为" Player"我将脚本附加到名为" TestCube"的多维数据集中。谢谢!

using UnityEngine;
using System.Collections;

public class testmovement : MonoBehaviour
{  
    Transform otherTransform;

    void Start()
    {
        // you can set a reference to the "parent" cube
        otherTransform = GameObject.Find("Player").transform;
    }

    void Update()
    {
        // here we force the position of the current object to have the same y as the parent
        transform.position = new Vector3(transform.position.x, otherTransform.position.y, transform.position.z);
    }
}

3 个答案:

答案 0 :(得分:0)

您可以在功能参数列表中进行算术运算。所以通过写作

transform.position = new Vector3(transform.position.x, otherTransform.position.y -0.5f, transform.position.z);

你可以获得恒定的Y偏移量。

答案 1 :(得分:0)

transform.position = transform.position + new Vector3(0, -0.5f, 0); //Or
transform.position = transform.position - new Vector3(0,  0.5f, 0);

答案 2 :(得分:0)

您也可以在Inspector中执行 - 使用Hierarchy设置关系Parent-Children(将一个对象拖放到另一个上)然后子项将组件IS相对于父位置转换为x:0,y:-0.5,z:0会给你带来理想的效果。