【发布时间】:2015-10-23 07:31:04
【问题描述】:
我正在尝试让我的游戏对象可以跳上并随之移动的移动平台。我可以让物体留在平台上但不会掉下来,但是当游戏物体在移动平台上时,它会被拉伸或收缩。我想如果我在代码中更新本地比例,我可以解决这个问题,但 Unity 说它没有本地比例的定义,此后就没有了。
using UnityEngine;
using System.Collections;
public class trigger : MonoBehaviour {
// Use this for initialization
void Start () {
}
void OnTriggerEnter (Collider other)
{
other.transform.parent = gameObject.transform;
//other.transform.localScale (1, 1, 1);
}
void OnTriggerExit (Collider other)
{
other.transform.parent = null;
//other.transform.localScale (1, 1, 1);
}
}
以防万一您需要知道我有一个没有网格的立方体对象,其位置和大小与用作触发器的平台相同。以防万一您想看到它,这是我移动平台的脚本。
using UnityEngine;
using System.Collections;
public class movingPlatforms : MonoBehaviour {
public Vector3 pointB;
public GameObject pig;
IEnumerator Start()
{
var pointA = transform.position;
while (true) {
yield return StartCoroutine(MoveObject(transform, pointA, pointB, 3.0f));
yield return StartCoroutine(MoveObject(transform, pointB, pointA, 3.0f));
}
}
IEnumerator MoveObject(Transform thisTransform, Vector3 startPos, Vector3 endPos, float time)
{
var i= 0.0f;
var rate= 1.0f/time;
while (i < 1.0f) {
i += Time.deltaTime * rate;
thisTransform.position = Vector3.Lerp(startPos, endPos, i);
yield return null;
}
}
void OnCollisionEnter (Collision col)
{
if(col.gameObject.name == "PIG")
{
//this.transform.position = pig.transform.position;
//pig.transform.position += this.transform.position;
}
}
void triggerOnStay(Collider collider)
{
if (collider.tag == "PIG")
{
collider.transform.parent = transform.parent;
}
}
}
有没有办法在我的脚本中定义语言环境比例,或者如果不是让我的游戏对象随平台移动的更好方法,我们将不胜感激。
更新:我将语言环境比例更新更改为 other.transform.localScale = Vector3.one;它适用于 On trigger Exit 但对于 on trigger Enter 我得到了这个picture
【问题讨论】:
标签: unity3d