首页 > 解决方案 > 对象引用未设置为对象:但是在哪里

问题描述

我正在按照教程为粘液平台游戏角色创建一些果冻效果,该脚本分为两部分,我称之为“JellyBro”,它使顶点抖动和“jellyfier”,使我的玩家弹跳。该脚本没有任何拼写错误,它应该可以工作,除了空引用异常,当我单击时,它会将我带到脚本的随机部分......

我对脚本和东西真的很陌生,所以我不知道它可能是什么,论坛中的其他类似问题并没有真正帮助

using System.Collections.Generic;
using UnityEngine;
public class jellyfier : MonoBehaviour
{
    public float bounceSpeed;
    public float fallForce;
    public float stiffness;

    private MeshFilter meshFilter;
    private Mesh mesh;

    Jelly[] jellyVertices;
    Vector3[] currentMeshVertices;

    private void Start()
     {
         meshFilter = GetComponent<MeshFilter>();
         mesh = meshFilter.mesh;

         GetVertices();
     }

   private void GetVertices()
         {
             jellyVertices = new JellyBro[mesh.vertices.Length];
             currentMeshVertices = new Vector3[mesh.vertices.Length];
             for (int i = 0; i < mesh.vertices.Length ; i++)
             {
                 jellyVertices[i] = new JellyBro(i,mesh.vertices[i], mesh.vertices[i], Vector3.zero);
                 currentMeshVertices[i] = mesh.vertices[i];
             }
         }


    private void Update()
        {
            UpdateVertices();
        }

    private void UpdateVertices()
        {
            for (int i = 0; i < jellyVertices.Length; i++)
            {
                jellyVertices[i].UpdateVelocity(bounceSpeed);
                jellyVertices[i].Settle(stiffness);

                jellyVertices[i].currentVertexPosition += jellyVertices[i].currentVelocity * Time.deltaTime;
                currentMeshVertices[i] = jellyVertices[i].currentVertexPosition;

            }

            mesh.vertices = currentMeshVertices;
            mesh.RecalculateBounds();
            mesh.RecalculateNormals();
            mesh.RecalculateTangents();

        }  
    public void OnCollisionEnter(Collision other)
    {
        ContactPoint[] CollisionPoints = other.contacts;
        for (int i = 0; i < CollisionPoints.Length; i++)
        {

            Vector3 inputPoint = CollisionPoints[i].point + (CollisionPoints[i].point * .1f);
            ApplyPressureToPoint(inputPoint, fallForce);
        }
    }
    public void ApplyPressureToPoint(Vector3 _point, float _pressure)
    {

        for (int i = 0; i < jellyVertices.Length; i++)
        {
            jellyVertices[i].ApplyPressureToVertex(transform, _point, _pressure);
        }
    }
}

所以是的,我正在为我的作品集制作这款游戏​​,所以我真的希望它简单但做得好,这次拍摄让我压力很大哈哈

非常感谢提前

标签: c#visual-studiounity3dgame-physics

解决方案


推荐阅读