CS1061:“转换”不包含“LocalScale”

问题描述

我正在学习做一些游戏开发,而且我是 C 系列的新手,所以我不知道它的要求是什么。谢谢大家的帮助!我在发帖前也尝试过研究这个,但我找不到任何解决方案。

错误如下: Assets\Scripts\Player.cs(12,21): error CS1061: 'Transform' 不包含 'LocalScale' 的定义,并且找不到接受类型为 'Transform' 的第一个参数的可访问扩展方法 'LocalScale'(是您是否缺少 using 指令或程序集引用?)

代码如下:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public class Player : MonoBehavIoUr {

    Transform GFX;
    float flipX;

      void Start() {
        GFX = GetComponentInChildren<SpriteRenderer>().transform;
        flipX = GFX.LocalScale.x;
    }

    void Update() {
        float horz = System.Math.Sign(Input.GetAxisRaw("Horizontal"));
        if(Mathf.Abs(horz) > 0)
        {
            GFX.LocalScale = new Vector2(flipX * horz,GFX.LocalScale.y);
        }
    }
}

附言我试图对代码使用括号,结果很奇怪,它不会封装代码。所以我省略了它们。对不起:D

解决方法

https://docs.unity3d.com/ScriptReference/Transform-localScale.html

这只是一个大小写错误。是 localScale 而不是 LocalScale