qq_43062856 2021-07-11 09:27 采纳率: 0%
浏览 14

能帮我找代码中的错误吗(c#)(基于unity)?

代码经常编译错误 能帮找错误吗

using System.Collections;

using System.Collections.Generic;

using UnityEngine;
using UnityEngine.UI;

using UnityEngine.SceneManagement;

using live2d;


public class GameManager : MonoBehaviour {

    //单例
   
 private static GameManager _instance;
    public static GameManager Instance
    {
        get
        {
            return _instance;
        }
    }

    //游戏的有关判断
    public bool gameOver;
    public Live2dSampleModel badBoyScript;
    public GameObject badBoyTalkLine;
    public GameObject gameOverBtns;

    //玩家属性
    public int gold;
    public int favor;
    public int leftDays;
         public int a;
   public int yyy;
  public int or;

    public Text goldText;
    public Text favorText;
    public Text dateText;

    public LAppModelProxy lAppModelProxy;

    public GameObject actionBtns;

    public GameObject talkLine;
    public Text talkLineText;

    //天黑天亮属性
    public Image mask;
    public bool toAnotherDay;
    public bool toBeDay;
    private float timeVal;

    //工作
    public GameObject workBtns;
    public Sprite[] workSprites;
    public Image workImage;
    public GameObject workUI;

    //聊天
    public GameObject chatUI;
    public GameObject yuan;
    

    //约会
    public SpriteRenderer bgImage;
    public Sprite[] dateSprites;

    //其他
    public GameObject clickEffect;
    public Canvas canvas;
    public Texture2D missCuiNewCloth;

    //音乐播放
    private AudioSource audioSource;
    public AudioClip[] audioClips;


    private void Awake()
    {
        _instance = this;
        gold = favor = 0;
        leftDays = 20;
        UpdateUI();
        audioSource = GetComponent<AudioSource>();
        audioSource.loop = true;
        audioSource.clip = audioClips[0];
        audioSource.Play();
    }

    // Update is called once per frame
    void Update () {
        //产生鼠标点击特效
        if (Input.GetMouseButtonDown(0))
        {
            Vector2 mousePos = Vector2.one;
            RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, Input.mousePosition, canvas.worldCamera, out mousePos);
            GameObject go = Instantiate(clickEffect);
            go.transform.SetParent(canvas.transform);
            go.transform.localPosition = mousePos;
        }

        //游戏结束逻辑
        if (gameOver)
        {
            talkLine.SetActive(true);
            gameOverBtns.SetActive(true);
            actionBtns.SetActive(false);
            if (favor>=1500)
            {
                talkLineText.text = "经过漫长的时间的积淀,两人的感情逐渐升温,终于,"+"\n"+"在裕作鼓起勇气的大胆表白下,明日香接受了他的心意!";
            }
            else if(leftDays!=0&&favor<1500)
            {
                talkLineText.text = "明日香被欺负时,裕作的懦弱与无能让她无比失望,"+"\n"+"从此,她再也没和裕作说过一句话,两人渐行渐远。";
            }
            else
            {
                talkLineText.text = "告白失败后,高三年级裕作最终也没能挽留住已经决意离开高中的明日香,"+"\n"+"恐怕两人的下次见面已经遥遥无期了";
            }
        }


        //是否过渡到另外一天
        if (toAnotherDay)
        {
            if (toBeDay)
            {
                //天亮
                if (timeVal>=2)
                {
                    timeVal = 0;
                    ToDay();
                }
                else
                {
                    timeVal += Time.deltaTime;
                }
            }
            else
            {
                //天黑
                ToDark();
            }
        }
    }

    //即将天黑
    public void ToBeDark()
    {
        toAnotherDay = true;
    }

    //天黑
    private void ToDark()
    {
        mask.color += new Color(0,0,0,Mathf.Lerp(0,1,0.1f));
        if (mask.color.a>=0.8f)
        {
            mask.color = new Color(0, 0, 0, 1);
            toBeDay = true;
            ResetUI();
            UpdateUI();
        }
    }

    //天亮
    private void ToDay()
    {
        mask.color -= new Color(0,0,0,Mathf.Lerp(1,0,0.1f));
        if (mask.color.a<=0.2f)
        {
            mask.color = new Color(0,0,0,0);
            toAnotherDay = false;
            toBeDay = false;
            if (leftDays!=5)
            {
                audioSource.clip = audioClips[0];
                audioSource.Play();
            }
        }
    }

    /// <summary>
    /// 打工
    /// </summary>
    public void ClickWorkBtn()
    {
yyy=Random.Range(1,4);
        actionBtns.SetActive(false);
        workBtns.SetActive(true);
        lAppModelProxy.SetVisible(false);
        PlayButtonSound();
        audioSource.clip = audioClips[2];
        audioSource.Play();
    }

    public void GetMoney(int workIndex)
    {   
        audioSource.PlayOneShot(audioClips[6]);
        workBtns.SetActive(false);

if (yyy==2){
 or=Random.Range(-50,-30);
 ChangeGold(or);
  talkLineText.text = "你工作很差劲,被老板惩罚了,金钱减少了"+or.ToString()+"的金币。";
}
else{
       a=Random.Range(10,51);
        ChangeGold((4-workIndex)*a);
 workImage.sprite = workSprites[workIndex];
        workUI.SetActive(true);
        talkLine.SetActive(true);
talkLineText.text = "劳动最光荣!经过劳动得到"+ ((4 - workIndex) *a).ToString()+"的金币。";}
        workImage.sprite = workSprites[workIndex];
        workUI.SetActive(true);
        talkLine.SetActive(true);

  
       
        
    }

    /// <summary>
    /// 聊天
    /// </summary>
    public void ClickChatBtn()
    {
        actionBtns.SetActive(false);
        chatUI.SetActive(true);
        audioSource.clip = audioClips[1];
        audioSource.Play();
        if (favor>=100)
        {
            lAppModelProxy.GetModel().StartMotion("tap_body", 1, 2);
        }
        else
        {
            lAppModelProxy.GetModel().StartMotion("tap_body",0,2);
        }
    }

    public void GetFavor(int chatIndex)
    {
        chatUI.SetActive(false);
        talkLine.SetActive(true);
        switch (chatIndex)
        {
            case 0:
                if (favor>20)
                {
                    ChangeFavor(10);
                    talkLineText.text = "你哦";
                    audioSource.PlayOneShot(audioClips[7]);

                }
                else
                {
                    ChangeFavor(2);
                    talkLineText.text = "哦,啊";
                    lAppModelProxy.GetModel().SetExpression("f08");
                    audioSource.PlayOneShot(audioClips[7]);
                }
                break;
            case 1:
                if (favor>60)
                {
                    ChangeFavor(20);
                    talkLineText.text = "你干嘛啊,你这人说话怎么这样!";
                    lAppModelProxy.GetModel().SetExpression("f07");
                    audioSource.PlayOneShot(audioClips[7]);
                }
                else
                {
                    ChangeFavor(-20);
                    talkLineText.text = "你看错了,那是残留的纸巾!" +"\n"+
                        "刚才我擦汗不小心留下的,你手拿开,真不礼貌!";
                    lAppModelProxy.GetModel().SetExpression("f03");
                }
                break;
            case 2:
                if (favor>100)
                {
                    ChangeFavor(40);
                    talkLineText.text = "那咱们一起去吃饭,下午去哪玩?";
                    lAppModelProxy.GetModel().SetExpression("f05");
                    audioSource.PlayOneShot(audioClips[7]);
                }
                else
                {
                    ChangeFavor(-40);
                    talkLineText.text = "你这人说话怎么这样啊,我又没得罪你。";
                    lAppModelProxy.GetModel().SetExpression("f04");
                }
                break;
            default:
                break;
        }
    }


   
    public void ClickXuBtn(){
   actionBtns.SetActive(false);
yuan.SetActive(true);

}
 /// <summary>
    /// 约会
    /// </summary>
    public void ClickDateBtn()
    {
        actionBtns.SetActive(false);
        talkLine.SetActive(true);
        int randomNum = Random.Range(1, 4);
        bool hasEnoughGold = false;
        bgImage.sprite = dateSprites[randomNum];
        switch (randomNum)
        {
            case 1:
                if (gold>=0)
                {
                    ChangeGold(0);
                    ChangeFavor(100);
                    talkLineText.text = "学校门口原来有这么好玩的地方," + "\n" +
                        "今天你了,二狗子。";
                    hasEnoughGold = true;
                }
                else
                {
                    talkLineText.text = "我有零花钱,我来吧。";
                    ChangeFavor(-50);
                }
                break;
            case 2:
                if (gold>=150)
                {
                    ChangeGold(-150);
                    ChangeFavor(300);
                    talkLineText.text = "我这样你真的没问题么?"+"\n"+"不过,今天我很高兴,了呢。";
                    hasEnoughGold = true;
                }
                else
                {
                    talkLineText.text = "下次有机会我再跟你玩吧。";
                    ChangeFavor(-150);
                }
                break;
            case 3:
                if (gold>=300)
                {
                    ChangeGold(-300);
                    ChangeFavor(500);
                    talkLineText.text = "今天真的很开心," + "\n" +
                        "还有,我实在是太喜欢这件礼物了。";
                    hasEnoughGold = true;
                }
                else
                {
                    talkLineText.text = "那个娃娃真的好可爱哦,好想要。";
                    ChangeFavor(-300);
                }
                break;
            default:
                break;
        }
        if (hasEnoughGold)
        {
            lAppModelProxy.GetModel().StartMotion("pinch_in",0,2);
        }
        else
        {
            lAppModelProxy.GetModel().StartMotion("flick_head", 0, 2);
        }
        audioSource.clip = audioClips[3];
        audioSource.Play();
        PlayButtonSound();
    }

    /// <summary>
    /// 表白
    /// </summary>
    public void ClickLoveBtn()
    {
        actionBtns.SetActive(false);
        talkLine.SetActive(true);
        audioSource.clip = audioClips[4];
        audioSource.Play();
        if (favor>=1500)//表白成功
        {
            talkLineText.text = 
            "你啊,裕作,其实,我也喜欢你很久了," + "\n" +
             "自己喜欢的那个人正好也喜欢着自己," + "\n" + "真好,希望你可以让我永远陪着你。";
            lAppModelProxy.GetModel().StartMotion("pinch_out", 0, 2);
            lAppModelProxy.GetModel().SetExpression("f07");
            gameOver = true;
        }
        else
        {
            talkLineText.text = "呢,很快就是毕业了";
            lAppModelProxy.GetModel().StartMotion("shake", 0, 2);
            lAppModelProxy.GetModel().SetExpression("f04");
        }
        PlayButtonSound();
    }

    //更新玩家属性UI显示
    private void UpdateUI()
    {
        goldText.text = gold.ToString();
        favorText.text = favor.ToString();
        dateText.text = leftDays.ToString();
    }
    //金边数额的变化方法
    public void ChangeGold(int goldValue)
    {
        gold += goldValue;
        if (gold<=0)
        {
            gold = 0;
        }
        UpdateUI();
    }
    //好感度数额变化的方法
    public void ChangeFavor(int favorValue)
    {
        favor += favorValue;
        if (favor<=0)
        {
            favor = 0;
        }
        UpdateUI();
    }

    //重置所有UI
    private void ResetUI()
    {
        workUI.SetActive(false);
        talkLine.SetActive(false);
        actionBtns.SetActive(true);
        lAppModelProxy.SetVisible(true);
        lAppModelProxy.GetModel().SetExpression("f01");
        bgImage.sprite = dateSprites[0];
        leftDays--;
        if (leftDays==5)
        {
            CreateBadBoy();
        }
        else if (leftDays==10)
        {
            Live2DModelUnity live2DModelUnity = lAppModelProxy.GetModel().GetLive2DModelUnity();
            live2DModelUnity.setTexture(2, missCuiNewCloth);
        }
        else if (leftDays==0)
        {
            gameOver = true;
        }
    }

    //产生坏男孩
    private void CreateBadBoy()
    {
        lAppModelProxy.isRunningAway = true;
        badBoyScript.gameObject.SetActive(true);
        lAppModelProxy.GetModel().SetExpression("f04");
        actionBtns.SetActive(false);
        badBoyTalkLine.SetActive(true);
        audioSource.clip = audioClips[5];
        audioSource.Play();
    }

    public void CloseBadBoyTalkLine()
    {
        badBoyTalkLine.SetActive(false);
    }

    public void DefeatBadBoy()
    {
        lAppModelProxy.GetModel().StartMotion("shake",0,2);
        talkLine.SetActive(true);
        talkLineText.text = "帮大忙了,裕作君。那是我真是吓了一跳呢" ;
        ChangeFavor(300);
    }

    public void LoadScene(int sceneNum)
    {
        SceneManager.LoadScene(sceneNum);
    }

    public void PlayButtonSound()
    {
        audioSource.PlayOneShot(audioClips[8]);
    }
}

  • 写回答

1条回答 默认 最新

  • 带酒书生 2021-07-12 16:41
    关注

    把报错粘贴出来啊

    评论

报告相同问题?

问题事件

  • 创建了问题 7月11日

悬赏问题

  • ¥60 Python如何后台操作Vmwake虚拟机键鼠
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容