我正在尝试有移动平台,我的游戏对象可以跳上并与它一起移动。我可以让物体停留在平台上,但不会掉下来,但当游戏对象在移动平台上时,它会被拉伸或缩小。如果我在代码中更新了本地规模,我想我可以修复这个问题,但是联合说,它没有本地规模的定义,而自那以后,这个定义就没有了。
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;
}
}
}是否有一种方法可以在我的脚本中定义区域范围,或者如果不是这样的话,让我的游戏对象与平台一起移动的更好的方式,任何帮助都将不胜感激。
update:我将地区规模更新更改为other.transform.localScale = Vector3.one;它对于On触发器出口很好,但是对于触发器Enter,我得到了这个图片
发布于 2015-10-22 22:57:03
Transform有一个Transform.localScale的定义问题是如何访问该元素,没有名为localScale()的方法,您必须使用变量localScale (内部是getter/setter)。
而不是
other.transform.localScale(1, 1, 1);试一试
other.transform.localScale = Vector3.one;
内部执行情况:

https://stackoverflow.com/questions/33292034
复制相似问题