首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UnityEngine.Transform不包含本地规模的定义?

UnityEngine.Transform不包含本地规模的定义?
EN

Stack Overflow用户
提问于 2015-10-22 22:48:22
回答 1查看 5.5K关注 0票数 1

我正在尝试有移动平台,我的游戏对象可以跳上并与它一起移动。我可以让物体停留在平台上,但不会掉下来,但当游戏对象在移动平台上时,它会被拉伸或缩小。如果我在代码中更新了本地规模,我想我可以修复这个问题,但是联合说,它没有本地规模的定义,而自那以后,这个定义就没有了。

代码语言:javascript
运行
复制
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);
}
}

以防万一你需要知道我有一个没有网格的立方体对象,其位置和大小与作为触发器的平台相同。万一你想看,这是我的移动平台的脚本。

代码语言:javascript
运行
复制
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,我得到了这个图片

EN

回答 1

Stack Overflow用户

发布于 2015-10-22 22:57:03

Transform有一个Transform.localScale的定义问题是如何访问该元素,没有名为localScale()的方法,您必须使用变量localScale (内部是getter/setter)。

而不是

代码语言:javascript
运行
复制
other.transform.localScale(1, 1, 1);

试一试

代码语言:javascript
运行
复制
other.transform.localScale = Vector3.one;

内部执行情况:

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33292034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档