Буквально самый простой способ исправить NullReferenceExeption имеет два пути. Если у вас есть GameObject, например, с прикрепленным скриптом и переменной с именем rb (rigidbody), эта переменная начнет пустую, когда вы начнете игру. Вот почему вы получаете NullReferenceExeption, потому что на компьютере нет данных, хранящихся в этой переменной.
В качестве примера я буду использовать переменную RigidBody. Мы можем добавить данные действительно легко на самом деле несколькими способами:
rb = GetComponent<Rigidbody>();
. Эта строка кода работает лучше всего под ваши функции Start()
или Awake()
. rb = AddComponent<RigidBody>();
Дальнейшие заметки: если вы хотите, чтобы единство добавлялось компонент для вашего объекта, и вы, возможно, забыли добавить его, вы можете ввести [RequireComponent(typeof(RigidBody))]
над объявлением класса (пробел ниже всех ваших приложений). Наслаждайтесь и получайте удовольствие от игр!
Невозможно из коробки, насколько мне известно, поскольку вы пытаетесь оживить Point
в пределах PointCollection
. Что вам действительно нужно, это PointCollectionAnimation
, который WPF не предоставляет. Тем не менее, удивительный Чарльз Петцольд написал эту статью некоторое время назад, показывая вам, как вы можете это сделать.
Поскольку ссылка, упомянутая в принятом ответе, больше не работает, поэтому я отправляю свой подход.
<Path Stroke="Red">
<Path.Data>
<GeometryGroup>
<LineGeometry x:Name="G1" StartPoint="100,100" EndPoint="100,0"/>
</GeometryGroup>
</Path.Data>
<Path.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<PointAnimationUsingPath Storyboard.TargetName="G1" Storyboard.TargetProperty="EndPoint">
<PointAnimationUsingPath.PathGeometry>
<PathGeometry Figures="M 100,0 C 150,50 200,75 250, 100" />
</PointAnimationUsingPath.PathGeometry>
</PointAnimationUsingPath>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Path.Triggers>
</Path>